spring_SSH整合之_架构的历史(架构整合JSP+Hibernate+Spring+Struts2+DTO)_9

来源:互联网 发布:数据分析入门书籍 编辑:程序博客网 时间:2024/05/20 03:37

Struts2中使用Action的类型重定向,jsp页面取不到list值

package com.bjsxt.registration.action;import java.util.List;import org.springframework.context.ApplicationContext;import com.bjsxt.registration.model.User;import com.bjsxt.registration.service.UserManager;import com.bjsxt.registration.vo.UserRegisterInfo;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;public class UserAction extends ActionSupport implementsModelDriven<UserRegisterInfo> {private UserRegisterInfo info;private UserManager userManager;private List<User> users;public UserRegisterInfo getInfo() {return info;}public void setInfo(UserRegisterInfo info) {this.info = info;}public UserManager getUserManager() {return userManager;}public void setUserManager(UserManager userManager) {this.userManager = userManager;}public List<User> getUsers() {return users;}public void setUsers(List<User> users) {this.users = users;}@Overridepublic String execute() throws Exception {User user = new User();user.setUsername(info.getUsername());user.setPassword(info.getPassword());if (userManager.exists(user)) {return "FAIL";}userManager.add(user);return "SUCCESS";}public UserRegisterInfo getModel() {return info;}public String list() {this.users = this.userManager.getUsers();return "LIST";}}

<?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><!-- 指定打开.jsp页面默认编码 --><constant name="struts.i18n.encoding" value="UTF-8" /><!-- 与spring集合时,指定由spring负责action对象的创建(自动装配) --><constant name="struts.objectFactory.spring.autoWire" value="type" /><!-- 开发模式下使用,这样可以打印出理详细的错误信息 --><constant name="struts.dewMode" value="true" /><package name="registration" namespace="/bjsxt" extends="struts-default"><action name="user_*" class="com.bjsxt.registration.action.UserAction"method="{1}"><result name="SUCCESS">/registSuccess.jsp</result><result name="FAIL">/registFail.jsp</result><!-- 使用重定向jsp页面取不到list值 --><!-- <result name="LIST" type="redirect">/userlist.jsp</result> --><result name="LIST">/userlist.jsp</result></action></package></struts>

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>用户列表</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"></head><body><table align="center" border="1"><tr><th>用户名</th><th>密码</th></tr><s:iterator value="users"><tr><td><s:property value="username" /></td><td><s:property value="password" /></td></tr></s:iterator></table><s:debug></s:debug></body></html>

=======================================================DTO= Data Transfer Object数据传输对象VO = Value Object值对象=======================================================界面原型实体类package com.bjsxt.registration.vo;public class UserRegisterInfo {private String username;private String password;private String password2;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getPassword2() {return password2;}public void setPassword2(String password2) {this.password2 = password2;}}package com.bjsxt.registration.action;import com.bjsxt.registration.model.User;import com.bjsxt.registration.service.UserManager;import com.bjsxt.registration.vo.UserRegisterInfo;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;@SuppressWarnings("serial")// 如果要使用模型驱动,得实现ModelDriven里面的getModel(DTO)// >>>它是Struts2种独有的一种接收用户输入的机制,想在项目中使用模型驱动// >>>(ModelDriven)需要让Action实现com.opensymphony.xwork2.ModelDriven 接口,使用它// >>>的getModel()方法来通知Struts2要注入的属性类型,并且声明属性时一定要实例化,但不需get,// >>>set方法。public class UserAction extends ActionSupport implementsModelDriven {private UserRegisterInfo info;private UserManager userManager;public UserManager getUserManager() {return userManager;}public void setUserManager(UserManager userManager) {this.userManager = userManager;}public UserRegisterInfo getInfo() {return info;}public void setInfo(UserRegisterInfo info) {this.info = info;}@Overridepublic String execute() throws Exception {User user = new User();user.setUsername(info.getUsername());user.setPassword(info.getPassword());if (userManager.exists(user)) {return "FAIL";}userManager.add(user);return "SUCCESS";}public UserRegisterInfo getModel() {return info;}}

阅读全文
0 0
原创粉丝点击