public class UserAction extends ActionSupport {
private String name;
private int age;
public String add() {
System.out.println("name=" + name);
System.out.println("age=" + age);
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2、使用Domain Model接收参数
将之前的属性放入到POJO ,并设置属性的setter/getter方法
链接:使用Domain Model接收参数添加用户
public class UserAction extends ActionSupport {
private User user;
//private UserDTO userDTO;
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3、使用ModelDriven接收参数
Action实现ModelDriven接口,实现getModel()方法。
这样user需要自己new出来,getModel返回user。
链接:使用ModelDriven接收参数添加用户
public class UserAction extends ActionSupport implements ModelDriven {
private User user = new User();
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}
字符编码
配置:
<constant value="GBK" />
在struts2.1.6中不起作用,属于bug,在struts2.1.7中修改。
解决方案:
修改web.xml 中:
<filter>
<filter-name>struts2
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher
=============================================================
Struts2一个Action内包含多个请求处理方法的处理(三种方式)
Struts1提供了DispatchAction,从而允许一个Action内包含多个请求处理方法。Struts2也提供了类似的功能。处理方式主要有以下三种方式:
1.1. 动态方法调用:
DMI:Dynamic Method Invocation 动态方法调用。
动态方法调用是指:表单元素的action不直接等于某个Action的名字,而是以如下形式来指定对应的动作名:
regist.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
1.2. 为Action配置method属性:
将Action类中的每一个处理方法都定义成一个逻辑Action方法。
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<result>/success.jsp
<result>/error.jsp
<result>/success.jsp
<result>/error.jsp
如 上,把LoginAction中的login和regist方法都配置成逻辑Action。要调用login方法,则相应的把index.jsp中表单元 素的action设置为"manage/userLogin.action";要调用regist方法,把regist.jsp中表单元素的action 设置为"manage/userRegist.action"。
1.3. 使用通配符映射(wildcard mappings)方式:
在struts.xml文件中配置元素时,它的name、class、method属性都可支持通配符,这种通配符的方式是另一种形式的动态方法调用。
当我们使用通配符定义Action的name属性时,相当于用一个元素action定义了多个逻辑Action:
<result>/success.jsp
<result>/error.jsp
如 上,定义一系列请求URL是user_*.action模式的逻辑Action,。同时method属性值为一个表达式 {1},表示它的值是name属性值中第一个*的值。例如:用户请求URL为user_login.action时,将调用到UserAction类的 login方法;用户请求URL为user_regist.action时,将调用到UserAction类的regist方法。阅读(6188) | 评论(0) | 转发(0) |
1
上一篇:java常用jar包(未整理)
下一篇:MyEclipse 注册机程序
相关热门文章
给主人留下些什么吧!~~
评论热议
请登录后评论。
登录 注册
以上就是关于struts2通配符的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-5996-2.html
参战舰船也超过北洋海军的数量
美国也就是虚张声势
买股票和炒股票的区别