日期:2014-05-18  浏览次数:20695 次

初学Struts2的几个问题
首先,看看我的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了呢?

-----------
新手提前谢过 ... 

------解决方案--------------------
message没有get  set方法,result如果你不设置名字  你看你action里面还能返回到这个页面么,设置name的作用就是你return “success”  这个success就是要和name对应才能跳到相应页面
------解决方案--------------------
解答1 <result../>默认包含 name="success" ,不必写
解答2 没有为message 提供setter方法---这里是反射机制,并通过拦截器parames获得的值
解答3:第三个没看懂问得是什么意思
------解决方案--------------------
引用:
Quote: 引用:

message没有get  set方法,result如果你不设置名字  你看你action里面还能返回到这个页面么,设置name的作用就是你return “success”  这个success就是要和name对应才能跳到相应页面