struts2 Action 接收参数的三种方法
刚学Struts2 时 大家可能遇到过很多问题,这里我讲一下Action 接收参数的三种方法,我曾经在这上面摔过一回。所以要警醒一下自己。。。。。
第一种:Action里声明属性,样例:accountName,password,message,并且要写get(),set() 方法。。
public class MessageAction extends ActionSupport {
// 接受客户端两个文本框的值
private String accountName;
private String password;
// 将服务器端处理结果返回给客户端
private String message;
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Action(value = "messageAction", results = {
@Result(name = "success", type = "dispatcher", location = "/signin.jsp"),
@Result(name = "error", type = "dispatcher", location = "/signin.jsp") })
//上面是注解,就是相当于在struts.xml里配置Action
<!--
<action name="messageAction" class="org.orclwdp.jwt.action.MessageAction" >
<result name="success" type="dispatcher" >/signin.jsp</result>
<result name="error" type="dispatcher">/signin.jsp</result>
</action>
-->
public String execute() {
if ("admin".equals(this.accountName)) {
if ("111111".equals(this.password)) {
message = "登录成功";
return SUCCESS;
} else {
message = "密码错误";
return ERROR;
}
} else {
message = "帐号不存在";
return ERROR;
}
}
}
第二种:声明一个对象,当然这个对象是已经有了的,即accountName,password,message。当然这些需要用到的参数属性是这个对象有的。声明对象要也要写get(),set() 方法。。但在前台页面里form表单中input输入框name属性:
<input class="m-wrap" id="editAccountName" name="userInfo.accountName" type="text" value="" placeholder="请输入用户名" />
public class MessageAction extends ActionSupport {
private UserInfo userInfo = new UserInfo();
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
@Action(value = "messageAction", results = {
@Result(name = "success", type = "dispatcher", location = "/signin.jsp"),
@Result(name = "error", type = "dispatcher", location = "/signin.jsp") })
public String execute() {
if ("admin".equals(userInfo.getAccountName()) {
if ("111111".equals(userInfo.getPassword()) {
message = "登录成功";
return SUCCESS;
} else {
message = "密码错误";
return ERROR;
}
} else {
message = "帐号不存在";
return ERROR;
}
}
}
第三种:实现ModelDriven<UserInfo>接口,UserInfo不需要写get(),set() 方法。实现 ModelDriven<UserInfo>
public class HelloAction extends ActionSupport implements ModelDriven<UserInfo> {
private UserInfo userInfo=new UserInfo();
@Override
public UserInfo getModel() {
return userInfo;
}
..................同上
}
struts2 Action 接收参数的三种方法的更多相关文章
- ssh框架总结之action接收参数的三种方式
页面将参数传递给action的三种方式 一是通过属性传值: 将页面和action的的属性值保持一致,在action上写上该属性的set和get方法,这样在页面提交参数的时候,action就会调用set ...
- Struts2中Action接收参数的四种形式
1.Struts2的Action接收参数的三种形式. a. 使用Action的属性接收(直接在action中利用get方法来接收参数): login.js ...
- SpringBoot接收前端参数的三种方法
都是以前的笔记了,有时间就整理出来了,SpringBoot接收前端参数的三种方法,首先第一种代码: @RestController public class ControllerTest { //访问 ...
- 【springmvc Request】 springmvc请求接收参数的几种方法
通过@PathVariabl注解获取路径中传递参数 转载请注明出处:springmvc请求接收参数的几种方法 代码下载地址:http://www.zuida@ima@com/share/1751862 ...
- HttpServletRequest接收参数的几种方法
HttpServletRequest接收参数的几种方法 我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter( ...
- mfc 在VC的两个对话框类中传递参数的三种方法
弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...
- python网络编程调用recv函数完整接收数据的三种方法
最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...
- struts2接收参数的5种方法
以下形式中最常用的是前两种 1. 使用Action的属性: 在action 里面定义要接收的参数,并提供相应的setter,getter,和提交参数的名称一致, 并不用做数据类型的转换相应提交方式可以 ...
- ASP.NET MVC post请求接收参数的三种方式
1.在控制器中建立一个PostDemo方法,建立视图创建一个表单 <h2>PostDemo</h2> name的值:@ViewBag.name <br /> nam ...
随机推荐
- Ubuntu全新系统一些配置
0.安装JDK,http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.安装Intellij IDEA,https:/ ...
- Bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 dijkstra,堆,分层图
1579: [Usaco2009 Feb]Revamping Trails 道路升级 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1573 Solv ...
- ubuntu Server LAmp环境
1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql 由于LAMP大部分 ...
- 非常棒的jqChart图表插件
由于项目需要,做一些类似于OA系统的应用时,表格用到的是最多的,那么图表展示就先显得尤为的重要,其中柱柱状图.折线图.饼状图又居多. 之前一直使用的是Chrome下的googleAPI中提供的char ...
- java中使用队列:java.util.Queue
在java5中新添加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口.Queue使用时要尽量避免Collection的add()和 ...
- GDB 运行PYTHON 脚本+python 转换GDB调用栈到流程图
http://tromey.com/blog/?cat=17 http://blog.csdn.net/cnsword/article/details/16337031 http://blog.csd ...
- PureMVC(JS版)源码解析(九):View类
在讲解View类之前,我们先回顾一下PureMVC的模块划分: 在PureMVC中M.V.C三部分由三个单例类管理,分别是Model/View/Controller.PureMVC中另外一个 ...
- iOS 开发之 ReactiveCocoa(进阶)
Map : 映射 UITextField *textField =[[UITextField alloc]initWithFrame:CGRectMake(100, 100, 100, 40)]; t ...
- android之listView定位到指定行同时隐藏输入键盘
帮别人该bug遇到的一个问题,记录下来. listView.setSelection(a); 这个方法可以让让你的listview定位到指定行 但是如果紧接着执行隐藏输入键盘的代码,则会有bug,这个 ...
- 【Android】数据库的简单应用——升级数据库
假如我们已经创建好了一个数据库,随着功能需求的增加,想在数据库中再添加一个表,如果直接在之前的代码中插入一个表,会发现创建表失败,这是因为该数据库已经存在.该如何解决呢? 1.卸载程序,重新编译安装. ...