日期:2014-05-17  浏览次数:20759 次

各位大牛,帮看一下诡异报错。替换变量名后,程序竟然不可用!
本帖最后由 wyjlhf 于 2013-01-08 00:37:33 编辑
各位好。今天看《研磨strut2》中的关于直接使用域对象的数据对应方式,将书中习题代码简单实现了一下。发现一个问题。在Action类中,替换一个变量名,程序就会出现报错的现象。不知是为何问题。详细描述见下文:
实现的基本功能是,在登录页面login.jsp中输入账号密码,点击“登录”,跳转到welcomd.jsp页面。
其中 struts.xml 内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.devMode" value="true" />
    <constant name="struts.locale" value="zh_CN" />
    <constant name="struts.il8n.encoding" value="UTF-8" />
    
    <package name="helloworld"  extends="struts-default">

        <action name="helloworldAction" class="com.java.helloworld.struts2impl.action.HelloWorldAction">
            <result  name="toWelcome" >/s2impl/welcome.jsp</result>
            <result  name="input" >/s2impl/login.jsp</result>
            </action>
    </package>
</struts>



域对象类为HelloWorldModule.java 内容如下:
package com.java.helloworld.struts2impl.module;

public class HelloWorldModule {

private String account;
private String password;
private String submitFlag;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSubmitFlag() {
return submitFlag;
}
public void setSubmitFlag(String submitFlag) {
this.submitFlag = submitFlag;
}


}


Action为HelloWordAction.java 内容如下:
package com.java.helloworld.struts2impl.action;


import com.opensymphony.xwork2.ActionSupport;
import com.java.helloworld.struts2impl.module.*;

public class HelloWorldAction extends ActionSupport {

//使用属性模型(直接使用域对象)

private HelloWorldModule hwm  = new HelloWorldModule();
public HelloWorldModule getHwm(){
return hwm;
}
public void setHwm(HelloWorldModule hwm){
this.hwm = hwm;
}


@Override  
public String execute() throws Exception {

System.out.println("属性驱动(使用域对象输入参数) :account=" + hwm.getAccount() + " password= "
+ hwm.getPassword() + " submitFlag=" + hwm.getSubmitFlag());
return "toWelcome";
}

}


还有login.jsp 页面和welcome.jsp页面如下:
<%@ page language="j