初学Struts2的几个问题

weidu23 2013-06-17 11:49:20
首先,看看我的struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="zxw_02" namespace="/zxw_nsp_02" extends="struts-default">
<action name="zxw_action_01" class="com.action.HelloWorld" method="execute">
<result name="success">/page/hello.jsp</result>
</action>
</package>
</struts>


这是hello.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
This is my JSP page.${message2 }.${message }<br>
</body>
</html>

---------------------------问题1---------------------------------
问题1:
其实我很不理解<result>标签的作用,这里<result name="success">中的name好像不需要也可以?
-----------------------------------------------------------------

再接着看我的HelloWorld.java:
package com.action;
public class HelloWorld {
private String message;
private String message2;
public String execute(){
message = "+ gsgs +";
message2 = "Congratulation!";
return "success";
}
public void setMessage2(String msg){
this.message2 = msg;
}
public String getMessage2(){
return this.message2;
}
}

这里的结果,是This is my JSP page.Congratulation?.

---------------------------问题2:---------------------
问题2:
为什么没有输出message,而输出了message2 ???
------------------------------------------------------

---------------------------问题3:--------------------
问题3:
为什么我在HelloWorld.java中加入了getMessage(){return message;}方法后,就可以显示message了呢?

-----------
新手提前谢过 ...
...全文
338 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
一梭子码农 2013-06-18
  • 打赏
  • 举报
回复
没必要专门去找一个xml配置的书,找几个视频看看,多动手做做,脑海就会潜意识的记得那些个常用的.
weidu23 2013-06-18
  • 打赏
  • 举报
回复
引用 16 楼 NNTT2010 的回复:
[quote=引用 15 楼 weidu23 的回复:] [quote=引用 14 楼 NNTT2010 的回复:] [quote=引用 12 楼 weidu23 的回复:] [quote=引用 11 楼 NNTT2010 的回复:] 楼主你好。 问题1:<result name="success"> 中当name="success"时,可以不写。 问题2:在HelloWorld 这个action中没有给message 提供setter、getter方法。 问题3:问题2已经回答了。 楼主你问的问题太基础了哦,建议先看看书,多写写基础程序,暂时不要细扣,能大概跑出个结果来。
呵呵,这位朋友说的是。 不过,咱别嫌我啰嗦一句,就是之前和楼上朋友说话时说到的,【我发现.xml配置文件真的很重要,问题是,我根本不知道配置文件中有哪些标签,在语言里我们有那个api,可以查一查,那么,.xml配置文件有没有相应的api或者说开发文档啊?能不能推荐下 ???】 希望你能推荐下。谢谢!!![/quote] 有的,struts2给的官方文档,是最最正宗的api,不过不要细扣,里面有的是极其生僻的,大多数还是有用的。所以说,刚开始接触的,先跑个登录页面,或者添加页面试试,然后根据xml中的标签去文档中找,慢慢的就熟悉了。[/quote] 这个倒是晓得,不过,我下载了之后发现里面都是些类? 我想指的的 .xml 配置文件,准确的说,也不是什么配置文件详解,而是告诉像一个api告知大众都有哪些类一样,希望有一个帮助文档,告知我有什么样的配置文件标签 ... 请问,你知道这方面的信息么? 先在这里谢过了 ...[/quote] 是的呀,官方文档里都有哦。[/quote] 好吧,受到 。 另附:结贴 ...
编程点滴 2013-06-17
  • 打赏
  • 举报
回复
楼上正解
java_码农 2013-06-17
  • 打赏
  • 举报
回复
解答1 <result../>默认包含 name="success" ,不必写 解答2 没有为message 提供setter方法---这里是反射机制,并通过拦截器parames获得的值 解答3:第三个没看懂问得是什么意思
qq463644439 2013-06-17
  • 打赏
  • 举报
回复
message没有get set方法,result如果你不设置名字 你看你action里面还能返回到这个页面么,设置name的作用就是你return “success” 这个success就是要和name对应才能跳到相应页面
长笛党希望 2013-06-17
  • 打赏
  • 举报
回复
引用 15 楼 weidu23 的回复:
[quote=引用 14 楼 NNTT2010 的回复:] [quote=引用 12 楼 weidu23 的回复:] [quote=引用 11 楼 NNTT2010 的回复:] 楼主你好。 问题1:<result name="success"> 中当name="success"时,可以不写。 问题2:在HelloWorld 这个action中没有给message 提供setter、getter方法。 问题3:问题2已经回答了。 楼主你问的问题太基础了哦,建议先看看书,多写写基础程序,暂时不要细扣,能大概跑出个结果来。
呵呵,这位朋友说的是。 不过,咱别嫌我啰嗦一句,就是之前和楼上朋友说话时说到的,【我发现.xml配置文件真的很重要,问题是,我根本不知道配置文件中有哪些标签,在语言里我们有那个api,可以查一查,那么,.xml配置文件有没有相应的api或者说开发文档啊?能不能推荐下 ???】 希望你能推荐下。谢谢!!![/quote] 有的,struts2给的官方文档,是最最正宗的api,不过不要细扣,里面有的是极其生僻的,大多数还是有用的。所以说,刚开始接触的,先跑个登录页面,或者添加页面试试,然后根据xml中的标签去文档中找,慢慢的就熟悉了。[/quote] 这个倒是晓得,不过,我下载了之后发现里面都是些类? 我想指的的 .xml 配置文件,准确的说,也不是什么配置文件详解,而是告诉像一个api告知大众都有哪些类一样,希望有一个帮助文档,告知我有什么样的配置文件标签 ... 请问,你知道这方面的信息么? 先在这里谢过了 ...[/quote] 是的呀,官方文档里都有哦。
weidu23 2013-06-17
  • 打赏
  • 举报
回复
引用 14 楼 NNTT2010 的回复:
[quote=引用 12 楼 weidu23 的回复:] [quote=引用 11 楼 NNTT2010 的回复:] 楼主你好。 问题1:<result name="success"> 中当name="success"时,可以不写。 问题2:在HelloWorld 这个action中没有给message 提供setter、getter方法。 问题3:问题2已经回答了。 楼主你问的问题太基础了哦,建议先看看书,多写写基础程序,暂时不要细扣,能大概跑出个结果来。
呵呵,这位朋友说的是。 不过,咱别嫌我啰嗦一句,就是之前和楼上朋友说话时说到的,【我发现.xml配置文件真的很重要,问题是,我根本不知道配置文件中有哪些标签,在语言里我们有那个api,可以查一查,那么,.xml配置文件有没有相应的api或者说开发文档啊?能不能推荐下 ???】 希望你能推荐下。谢谢!!![/quote] 有的,struts2给的官方文档,是最最正宗的api,不过不要细扣,里面有的是极其生僻的,大多数还是有用的。所以说,刚开始接触的,先跑个登录页面,或者添加页面试试,然后根据xml中的标签去文档中找,慢慢的就熟悉了。[/quote] 这个倒是晓得,不过,我下载了之后发现里面都是些类? 我想指的的 .xml 配置文件,准确的说,也不是什么配置文件详解,而是告诉像一个api告知大众都有哪些类一样,希望有一个帮助文档,告知我有什么样的配置文件标签 ... 请问,你知道这方面的信息么? 先在这里谢过了 ...
长笛党希望 2013-06-17
  • 打赏
  • 举报
回复
引用 12 楼 weidu23 的回复:
[quote=引用 11 楼 NNTT2010 的回复:] 楼主你好。 问题1:<result name="success"> 中当name="success"时,可以不写。 问题2:在HelloWorld 这个action中没有给message 提供setter、getter方法。 问题3:问题2已经回答了。 楼主你问的问题太基础了哦,建议先看看书,多写写基础程序,暂时不要细扣,能大概跑出个结果来。
呵呵,这位朋友说的是。 不过,咱别嫌我啰嗦一句,就是之前和楼上朋友说话时说到的,【我发现.xml配置文件真的很重要,问题是,我根本不知道配置文件中有哪些标签,在语言里我们有那个api,可以查一查,那么,.xml配置文件有没有相应的api或者说开发文档啊?能不能推荐下 ???】 希望你能推荐下。谢谢!!![/quote] 有的,struts2给的官方文档,是最最正宗的api,不过不要细扣,里面有的是极其生僻的,大多数还是有用的。所以说,刚开始接触的,先跑个登录页面,或者添加页面试试,然后根据xml中的标签去文档中找,慢慢的就熟悉了。
weidu23 2013-06-17
  • 打赏
  • 举报
回复
引用 10 楼 yangcheng211 的回复:
[quote=引用 9 楼 weidu23 的回复:] [quote=引用 7 楼 yangcheng211 的回复:] 恩,我也觉得,用这些个框架做开发中大量的工作都在配置文件中配置完成了,专门讲配置文件中的标签的文档我没见过,我觉得如果有时间的话还是找本好书系统学习一下框架知识.....................讲得很十分细致
呵呵,多谢提醒,书已下。
weidu23 2013-06-17
  • 打赏
  • 举报
回复
引用 11 楼 NNTT2010 的回复:
楼主你好。 问题1:<result name="success"> 中当name="success"时,可以不写。 问题2:在HelloWorld 这个action中没有给message 提供setter、getter方法。 问题3:问题2已经回答了。 楼主你问的问题太基础了哦,建议先看看书,多写写基础程序,暂时不要细扣,能大概跑出个结果来。
呵呵,这位朋友说的是。 不过,咱别嫌我啰嗦一句,就是之前和楼上朋友说话时说到的,【我发现.xml配置文件真的很重要,问题是,我根本不知道配置文件中有哪些标签,在语言里我们有那个api,可以查一查,那么,.xml配置文件有没有相应的api或者说开发文档啊?能不能推荐下 ???】 希望你能推荐下。谢谢!!!
长笛党希望 2013-06-17
  • 打赏
  • 举报
回复
楼主你好。 问题1:<result name="success"> 中当name="success"时,可以不写。 问题2:在HelloWorld 这个action中没有给message 提供setter、getter方法。 问题3:问题2已经回答了。 楼主你问的问题太基础了哦,建议先看看书,多写写基础程序,暂时不要细扣,能大概跑出个结果来。
Asura211 2013-06-17
  • 打赏
  • 举报
回复
引用 9 楼 weidu23 的回复:
[quote=引用 7 楼 yangcheng211 的回复:] message 是次要的 setMessage()和getMessage()才是主要的,系统是根据setter和getter来处理http请求参数的。message名字甚至可以随便写,但是setMessage()和getMessage()两个方法必须按照规矩去写,否则action无法处理名为message的参数
我发现.xml配置文件真的很重要,问题是,我根本不知道配置文件中有哪些标签,在语言里我们有那个api,可以查一查,那么,.xml配置文件有没有相应的api或者说开发文档啊?能不能推荐下 ???[/quote] 恩,我也觉得,用这些个框架做开发中大量的工作都在配置文件中配置完成了,专门讲配置文件中的标签的文档我没见过,我觉得如果有时间的话还是找本好书系统学习一下框架知识,不管是spring还是struts,只知道配置文件中标签的用法都是不够的,主要是得了解机制和原理,不然很难真正理解。我现在在看李刚的《轻量级JavaEE企业应用实战(第三版)——Struts2+Spring+Hibernate整合开发》。。。。讲得很十分细致
weidu23 2013-06-17
  • 打赏
  • 举报
回复
引用 7 楼 yangcheng211 的回复:
message 是次要的 setMessage()和getMessage()才是主要的,系统是根据setter和getter来处理http请求参数的。message名字甚至可以随便写,但是setMessage()和getMessage()两个方法必须按照规矩去写,否则action无法处理名为message的参数
我发现.xml配置文件真的很重要,问题是,我根本不知道配置文件中有哪些标签,在语言里我们有那个api,可以查一查,那么,.xml配置文件有没有相应的api或者说开发文档啊?能不能推荐下 ???
weidu23 2013-06-17
  • 打赏
  • 举报
回复
引用 7 楼 yangcheng211 的回复:
message 是次要的 setMessage()和getMessage()才是主要的,系统是根据setter和getter来处理http请求参数的。message名字甚至可以随便写,但是setMessage()和getMessage()两个方法必须按照规矩去写,否则action无法处理名为message的参数
原来是这样,有些明白了 ...
Asura211 2013-06-17
  • 打赏
  • 举报
回复
message 是次要的 setMessage()和getMessage()才是主要的,系统是根据setter和getter来处理http请求参数的。message名字甚至可以随便写,但是setMessage()和getMessage()两个方法必须按照规矩去写,否则action无法处理名为message的参数
qq463644439 2013-06-17
  • 打赏
  • 举报
回复
引用 4 楼 weidu23 的回复:
[quote=引用 1 楼 qq463644439 的回复:] message没有get set方法,result如果你不设置名字 你看你action里面还能返回到这个页面么,设置name的作用就是你return “success” 这个success就是要和name对应才能跳到相应页面
那个,<result name=thisName>,这里的thisName不是自定义的不?<result name="success">只有一个啊,那么怎么跳?是不是每一个action只有一个<result name>来区分各个对应的name来跳转页面?[/quote]这里的name里你随便定义,反正他都对应一个结果页面,也可以是一个action,就是对应一个跳转,你action不是里面方法都有一个return么, return到哪个结果集就用哪个name,在这个配置里面可以配置多个result的
weidu23 2013-06-17
  • 打赏
  • 举报
回复
引用 2 楼 a1336224635 的回复:
解答1 <result../>默认包含 name="success" ,不必写 解答2 没有为message 提供setter方法---这里是反射机制,并通过拦截器parames获得的值 解答3:第三个没看懂问得是什么意思
那么,这里的getter和setter的大致原理是如何的呢?【我听完你说之后,百度了,没百到】
weidu23 2013-06-17
  • 打赏
  • 举报
回复
引用 1 楼 qq463644439 的回复:
message没有get set方法,result如果你不设置名字 你看你action里面还能返回到这个页面么,设置name的作用就是你return “success” 这个success就是要和name对应才能跳到相应页面
那个,<result name=thisName>,这里的thisName不是自定义的不?<result name="success">只有一个啊,那么怎么跳?是不是每一个action只有一个<result name>来区分各个对应的name来跳转页面?

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧