用域模型接收参数
User类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.bjsxt.struts2.user.model; 2 3 public class User { 4 5 private String name; 6 7 private int age; 8 9 public String getName() { 10 return name; 11 } 12 13 public void setName(String name) { 14 this.name = name; 15 } 16 17 public int getAge() { 18 return age; 19 } 20 21 public void setAge(int age) { 22 this.age = age; 23 } 24 25 }
UserAction
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.bjsxt.struts2.user.action; 2 3 import com.bjsxt.struts2.user.model.User; 4 import com.opensymphony.xwork2.ActionSupport; 5 6 public class UserAction extends ActionSupport{ 7 8 private static final long serialVersionUID = -2514433281517403937L; 9 10 User user; 11 //private UserDTO userDTO; 12 13 public String add(){ 14 System.out.println("name = " + user.getName()); 15 System.out.println("age = " + user.getAge()); 16 return SUCCESS; 17 } 18 19 public User getUser() { 20 return user; 21 } 22 23 public void setUser(User user) { 24 this.user = user; 25 } 26 27 }
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.configuration.xml.reload" value="true"/> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <package name="user" namespace="/user" extends="struts-default"> <action name="user" class="com.bjsxt.struts2.user.action.UserAction"> <result>/user_add_success.jsp</result> </action> </package> </struts>
index.jsp
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 8 <html> 9 <head> 10 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 11 <title>首页</title> 12 <base href="<%=basePath%>"/> 13 </head> 14 <body> 15 <h1>Hello World~~~</h1> 16 <a href="user/user!add?user.name=xiaoer&user.age=33">添加用户</a> 17 </body> 18 </html>
结果:
有时候,页面输入的值并非就是单纯的与数据库对应的model,也许会加上其他的东西:验证码,确认密码,标识列...
这时候可以在 model 前又加上一层 dto(Data Transfer Object),或者叫VO。
我们可以先用dto接收,接收完在方法中处理了相关业务之后,再把dto中与model相关的值复制到model中,dto相当一个中间对象,两者之间的关系如下图。
链接: http://pan.baidu.com/s/1dFf4HXJ 密码: a73w