刚学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 接收参数的三种方法的更多相关文章

  1. ssh框架总结之action接收参数的三种方式

    页面将参数传递给action的三种方式 一是通过属性传值: 将页面和action的的属性值保持一致,在action上写上该属性的set和get方法,这样在页面提交参数的时候,action就会调用set ...

  2. Struts2中Action接收参数的四种形式

    1.Struts2的Action接收参数的三种形式.      a. 使用Action的属性接收(直接在action中利用get方法来接收参数):                   login.js ...

  3. SpringBoot接收前端参数的三种方法

    都是以前的笔记了,有时间就整理出来了,SpringBoot接收前端参数的三种方法,首先第一种代码: @RestController public class ControllerTest { //访问 ...

  4. 【springmvc Request】 springmvc请求接收参数的几种方法

    通过@PathVariabl注解获取路径中传递参数 转载请注明出处:springmvc请求接收参数的几种方法 代码下载地址:http://www.zuida@ima@com/share/1751862 ...

  5. HttpServletRequest接收参数的几种方法

    HttpServletRequest接收参数的几种方法 我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter( ...

  6. mfc 在VC的两个对话框类中传递参数的三种方法

    弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...

  7. python网络编程调用recv函数完整接收数据的三种方法

    最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...

  8. struts2接收参数的5种方法

    以下形式中最常用的是前两种 1. 使用Action的属性: 在action 里面定义要接收的参数,并提供相应的setter,getter,和提交参数的名称一致, 并不用做数据类型的转换相应提交方式可以 ...

  9. ASP.NET MVC post请求接收参数的三种方式

    1.在控制器中建立一个PostDemo方法,建立视图创建一个表单 <h2>PostDemo</h2> name的值:@ViewBag.name <br /> nam ...

随机推荐

  1. android camera(三):camera V4L2 FIMC

    1. V4L2 1)简介 在Linux中,摄像头方面的标准化程度比较高,这个标准就是V4L2驱动程序,这也是业界比较公认的方式. V4L全称是Video for Linux,是Linux内核中标准的关 ...

  2. OpenCV SIFT原理与源码分析

    http://blog.csdn.net/xiaowei_cqu/article/details/8069548 SIFT简介 Scale Invariant Feature Transform,尺度 ...

  3. Microsoft Visual Studio 2013如何设置查找头文件的路径

  4. PAT 1076. Forwards on Weibo (30)

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  5. Java如何等待子线程执行结束

    工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线 ...

  6. rails + mongoid 使用

    1. 测试环境 2. 创建工程 rails new mongoid_app --skip-active-record --skip-test-unit --skip-bundle 3. 修改gemfi ...

  7. 从struts2.1开始Convention零配置

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...

  8. Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记

    第一章 Thread导论 为何要用Thread ? 非堵塞I/O      I/O多路技术      轮询(polling)      信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...

  9. Android MediaPlayer Error/Info Code

    1. 常见错误 error(-38, 0) 我觉得-38表示在当前的MediaPlayer状态下,不能运行你的操作. 详细怎样做请參考:Android MediaPlayer 另外我在其它资料中.发现 ...

  10. Android网络:HTTP之利用HttpURLConnection访问网页、获取网络图片实例 (附源码)

    http://blog.csdn.net/yanzi1225627/article/details/22222735 如前文所示的TCP局域网传送东西,除了对传输层的TCP/UDP支持良好外,Andr ...