各位好。今天看《研磨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="java" import="java.util.*" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>