Struts 2中通过Action自动接收参数

Struts2中Action接收参数的方法主要有以下三种:

1.使用Action的属性接收参数:(通过属性驱动式)

a.定义:在Action类中定义属性,创建get和set方法;

b.接收:通过属性接收参数,如:userName;

c.发送:使用属性名传递参数,如:user1!add?userName=Magci;

JSP:

<form action="sys/login.action" method="post">
 <input type="text" name="username">
 <input type="submit" value="submit">
</form>

Action:直接通过get、set方法获取。

public class sysAction extends ActionSupport{
 private String username;  

 public String login() throws Exception {
  System.out.println(username);
  return SUCCESS;
 }  

 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username= username;
 }
}

2.使用ModelDriven接收参数:(模型驱动方式,必须要实现ModelDriven<T>接口。对于要传入多个model第二种方式不方便)

更多精彩内容:http://www.bianceng.cn/Programming/Java/

a.定义:Action实现ModelDriven泛型接口,定义Model类的对象(必须new),通过getModel方法返回该对象;

b.接收:通过对象的属性接收参数,如:user.getUserName();

c.发送:直接使用属性名传递参数,如:user2!add?userName=MGC

JSP:

<form action="sys/login.action" method="post">
 <input type="text" name="username">
 <input type="submit" value="submit">
</form>

Action:必须实现getModel() 方法

public class sysAction extends ActionSupport implements ModelDriven<User>{
 private User user;  

 public String login() throws Exception {
  System.out.println(getModel().getUsername());
  return SUCCESS;
 }  

 public User getModel() {
  if (null == user) {
   return user = new User();
  }
  return user;
 }
}

3.使用DomainModel接收参数:(第三种领域模型方式可以完全不实现ModelDriven<T>,也可使用多个model对象的属性。)

a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法;

b.接收:通过对象的属性接收参数,如:user.getUserName();

c.发送:使用对象的属性传递参数,如:user2!add?user.userName=MGC;

JSP:

<form action="sys/login.action" method="post">
 <input type="text" name="user.username">
 <input type="text" name="teacher.level">
 <input type="submit" value="submit">
</form>

Action: 必须提供set方法

public class sysAction extends ActionSupport{
 private User user;
 private Teacher teacher;  

 public String login() throws Exception {
  System.out.println(user.getUsername());
  System.out.println(teacher.getLevel());
  return SUCCESS;
 }  

 public void setUser(User user) {
  this.user = user;
 }
 public void setTeacher(Teacher teacher) {
  this.teacher = teacher;
 }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索对象
, action
, 参数
, 属性
, public
, struts2.0modeldriven
, user
, ModelDriven
接收传入参数
struts2 action 参数、struts action 参数、struts2 action带参数、struts action 带参数、struts2接收参数,以便于您获取更多的相关知识。

时间: 2024-10-27 23:55:14

Struts 2中通过Action自动接收参数的相关文章

action-Struts2用Action属性接收参数报错

问题描述 Struts2用Action属性接收参数报错 这个项目报错如下:There is no Action mapped for namespace [/] and action name [user!add] associated with context path [/input]. struts.xml的配置如下: UserAction.java文件 package com.wxh.action;import com.opensymphony.xwork2.ActionSupport;

Struts 2中的constant配置详解_java

1.<constant name="struts.i18n.encoding" value="UTF-8" /> 指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法. 2.<constant name="struts.i18n.reload" value="false"/> 该属性设置是否每次HTTP请求到达时,系统都重新加载资源文

在JSP页面获取后台action封装的参数,这个参数里面又含有两个对象,二层引用,报错

问题描述 在JSP页面获取后台action封装的参数,这个参数里面又含有两个对象,二层引用,报错 javax.el.PropertyNotFoundException: Property 'userAccount' not found on type java.lang.String 上面是报错信息, 下面是JSP页面: 用户名: ${commentlist.userAccount.userName } 职业: ${commentlist.userAccount.job } ${commentl

详解在Java的Struts2框架中配置Action的方法_java

在Struts2中Action部分,也就是Controller层采用了低侵入的方式.为什么这么说?这是因为在Struts2中action类并不需要继承任何的基类,或实现任何的接口,更没有与Servlet的API直接耦合.它通常更像一个普通的POJO(通常应该包含一个无参数的execute方法),而且可以在内容定义一系列的方法(无参方法),并可以通过配置的方式,把每一个方法都当作一个独立的action来使用,从而实现代码复用. 例如: package example; public class U

Struts2中Action接收参数的方法

Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数:     a.定义:在Action类中定义属性,创建get和set方法:     b.接收:通过属性接收参数,如:userName:     c.发送:使用属性名传递参数,如:user1!add?userName=Magci: 2.使用DomainModel接收参数:     a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法:    

Struts中的Action类的工作机制

Struts中的Action类的工作机制  所有的Action类都是org.apache.struts.action.Action的子类.Action子类应该覆写父类的execute()方法.当ActionForm Bean被创建,并且表单验证顺利通过后,Struts框架就会调用Action类的execute()方法.execute()方法的定义如下:    public ActionForward execute(ActionMapping mapping                   

如何使用Spring来管理Struts中的Action

当指定struts.objectFactory为spring时,struts2框架就会把bean转发给spring来创建,装配,注入.但是bean创建完成之后,还是由struts容器来管理其生命周期.配置方式: (1)struts.xml中: xml 代码: < constant name="struts.objectFactory" value="spring" /> (2)struts.properties中: java 代码: struts.obj

struts2–jsp-struts2在action中获取页面超链接中文参数乱码

问题描述 struts2在action中获取页面超链接中文参数乱码 struts2在action中获取页面超链接中文参数乱码,该如何解决,跪求各位大神 解决方案 在struts 配置文件里加上: <struts> <constant name="struts.locale" value="zh_CN"></constant> <constant name="struts.i18n.encoding" va

spring mvc-springMVC controller中方法接收参数问题,怎么接收json对象

问题描述 springMVC controller中方法接收参数问题,怎么接收json对象 后台配置及代码 <bean id=""paramMethodResolver"" class=""org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver""> <property name=""param