原文地址: http://laokaddk.blog.51cto.com/368606/1340816

多的不说,直接上代码;

struts.xml代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
 <package name="login" namespace="/user" extends="struts-default">
 <action name="*_*" class="com.wepull.struts2.action.{1}Action"
    method="{2}">
  <result name="success">{1}_{2}.jsp</result>
  <result name="input">User_toLogin.jsp</result>
 </action>
</package>
</struts>

第一种传参方式:

import com.opensymphony.xwork2.ActionSupport;
/**
 * Struts2三种传参方式(从jsp页面传到Action)
 * 
 * 方式一:直接在action中写属性,然后写set、get方法
 * 1.在Action里添加属性,属性名要对应jsp上的属性名
 *  2.添加相应的set方法
 *
 */
public class UserAction extends ActionSupport {
private String name;
private String pass;
public String getName() {
 return name;
}
public void setName(String name) {
 this.name = name;
}
public String getPass() {
 return pass;
}
public void setPass(String pass) {
 this.pass = pass;
}

public String doLogin(){
 String forward="input";
 //System.out.println(name+" "+pass);
 if("wepull".equalsIgnoreCase(name)&&"123".equalsIgnoreCase(pass)){
  return SUCCESS;   //登录成功,返回成功页面
 }else{
  return forward;   //登录失败,返回重新登录
 }
}

public String toLogin(){
 return SUCCESS;       //进入登录页面
}

}

------------------------------------------------------------------------------------------------------------------------------

User_toLogin.jsp页面:

<form action="user/User_doLogin">
    <table>
     <tr>
      <td>用户名</td>
      <td><input type="text" name="name"></td>
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td>密 码</td>
      <td><input type="text" name="pass"></td>
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td><input type="submit" value="sure" ></td>
      <td><input type="reset" value="reset" ></td>
      <td>&nbsp;</td>
     </tr>
    </table>
   </form>

##########################################################################

第二种传参方式:

import com.opensymphony.xwork2.ActionSupport;
/**
* Struts2三种传参方式(从jsp页面传到Action)

* 方式二:把属性封装到dto中,传值时以dto名字.其中属性
* 1.在Action里添加属性,属性名要对应jsp上的属性名
*  2.添加相应的set方法
*
*/
public class UserAction extends ActionSupport {
private UserDTO user;
public UserDTO getUser() {
 return user;
}
public void setUser(UserDTO user) {
 this.user = user;
}

public String doLogin(){
 String forward="input";
 //System.out.println(user.getName()+" "+user.getPass());
 if("wepull".equalsIgnoreCase(user.getName())&&"123".equalsIgnoreCase(user.getPass())){
  return SUCCESS;  
 }else{
  return forward;
 }
}

public String toLogin(){
 return SUCCESS;
}
}

------------------------------------------------------------------------------------------------------------------------------

UserDTO.java代码

public class UserDTO {
private String id;
private String name;
private String pass;
public String getId() {
 return id;
}
public void setId(String id) {
 this.id = id;
}
public String getName() {
 return name;
}
public void setName(String name) {
 this.name = name;
}
public String getPass() {
 return pass;
}
public void setPass(String pass) {
 this.pass = pass;
}
}

------------------------------------------------------------------------------------------------------------------------------

User_toLogin.jsp页面:

<form action="user/User_doLogin">
    <table>
     <tr>
      <td>用户名</td>
      <td><input type="text" name="user.name"></td>
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td>密 码</td>
      <td><input type="text" name="user.pass"></td>
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td><input type="submit" value="sure" ></td>
      <td><input type="reset" value="reset" ></td>
      <td>&nbsp;</td>
     </tr>
    </table>
   </form>

##########################################################################

第三种传参方式:

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
* Struts2三种传参方式(从jsp页面传到Action)

* 方式三:实现ModelDriven
* 实现ModelDriven接口
*
*/
public class UserAction extends ActionSupport implements ModelDriven<UserDTO>{
private UserDTO user;

public UserDTO getUser() {
 return user;
}
public void setUser(UserDTO user) {
 this.user = user;
}

public String doLogin(){
 String forward="input";
 //System.out.println(user.getName()+" "+user.getPass());
 if("wepull".equalsIgnoreCase(user.getName())&&"123".equalsIgnoreCase(user.getPass())){
  return SUCCESS;  
 }else{
  return forward;
 }
}

public String toLogin(){
 return SUCCESS;
}
public UserDTO getModel() {
 if(user==null){
  user=new UserDTO();
 }
 return user;
}
}

------------------------------------------------------------------------------------------------------------------------------

User_toLogin.jsp页面:

<form action="user/User_doLogin">
    <table>
     <tr>
      <td>用户名</td>
      <td><input type="text" name="name"></td>
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td>密 码</td>
      <td><input type="text" name="pass"></td>
      <td>&nbsp;</td>
     </tr>
     <tr>
      <td><input type="submit" value="sure" ></td>
      <td><input type="reset" value="reset" ></td>
      <td>&nbsp;</td>
     </tr>
    </table>
   </form>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

另外,在介绍一种通过HttpServletRequest request  传参方式

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
* 获取request参数的方式
*HttpServletRequest request  传参方式
*
*/
public class UserAction extends ActionSupport{

public String doLogin(){
 //获取request对象
 HttpServletRequest request=ServletActionContext.getRequest();
 //获取session对象
 //HttpSession session=request.getSession();
 String name=request.getParameter("name");
 String pass=request.getParameter("pass");
 String forward="input";
 if("wepull".equalsIgnoreCase(name)&&"123".equalsIgnoreCase(pass)){
  return SUCCESS;  
 }else{
  return forward;
 }
}

public String toLogin(){
 return SUCCESS;
}

}

struts2前后台传值的三种方法的更多相关文章

  1. MVC控制器向View视图传值的三种方法

    首先创建一个MVC的项目,其中需要一个控制器(TestController),三个视图(index,edit,detail) 1.项目结构如下:

  2. React Router v4 页面传值的三种方法

    传值方法 1.props.params 使用React router定义路由时,我们可以给指定一个path,然后指定通配符可以携带参数到指定的path: <Route path='/user/: ...

  3. struts2开发action 的三种方法以及通配符、路径匹配原则、常量

    struts2开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport { // Action中业务 ...

  4. jsp值传到后台Struts2中的action三种方法

    Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" n ...

  5. javascript静态页面传值的三种方法分享

    一:JavaScript静态页面值传递之URL篇能过URL进行传值.把要传递的信息接在URL上.Post.htm 复制代码 代码如下: <input type="text" ...

  6. iOS UI-界面传值(三种方法)

    #import <Foundation/Foundation.h> @interface DataModel : NSObject @property (nonatomic, copy) ...

  7. Asp.Net MVC向视图View传值的三种方法

    本文将总结Asp.Net MVC向视图View传值的三种常见的方法: ----------------------------------------------------------------- ...

  8. ASP.NET MVC 控制器向View传值的三种方法

    转自:http://www.cnblogs.com/shinima/p/3940452.html 1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResu ...

  9. MVC-控制器向View传值的三种方法

    1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResult Index() { DateTime date = DateTime.Now; return ...

随机推荐

  1. 《算法》BEYOND 部分程序 part 3

    ▶ 书中第六章部分程序,加上自己补充的代码,包括 Graham 扫描生成凸包,计算最远点对 ● Graham 扫描生成凸包 package package01; import java.util.Ar ...

  2. python学习笔记_week24

    note 内容回顾: Model - 数据库操作 on_delete Query_set select_related 跨表数据一次性拿过来,不增加sql查询次数.帮助跨表,后面参数只能加连表字段 f ...

  3. python中的isalnum、isalpha、istitle、isspace、islower、isupper、isdigit

    isalnum()判断是否包含字母或者数字 isalpha()判断是否都是字母 istitle()判断每个单词首字母是否是大写 isspace()判断是否是空格 islower()判断字母是否全都是小 ...

  4. windows2012系统IE浏览器无法打开加载flashplayer内容

    添加角色和功能,用户界面和基础结构,桌面体检,安装完重启电脑

  5. Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系

    转自:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自[张鸿洋的博客] 很多人面试肯定都被问到过,请问Android中的 ...

  6. spring 的 切片Aspect 最常用记录方法执行时间

    /** * */ package com.icil.esolution.aspect; import java.util.Date; import org.aspectj.lang.Proceedin ...

  7. [Python]实践:实现探测Web服务质量

    来源:Python 自动化运维 技术与最佳实践 HTTP服务是最流行的互联网应用之一,服务质量的好坏关系到用户体验以及网站的运营服务水平,最常用的有两个标准:1.服务的可用性,比是否处于正常提供服务状 ...

  8. tensorflow实战系列(三)一个完整的例子

    #!/usr/bin/env python2# -*- coding: utf-8 -*-"""Created on Wed Jan 18 08:42:55 2017 @ ...

  9. Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用

    转自:https://www.cnblogs.com/keepfool/p/5665953.html 概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST AP ...

  10. 机器学习进阶-项目实战-信用卡数字识别 1.cv2.findContour(找出轮廓) 2.cv2.boudingRect(轮廓外接矩阵位置) 3.cv2.threshold(图片二值化操作) 4.cv2.MORPH_TOPHAT(礼帽运算突出线条) 5.cv2.MORPH_CLOSE(闭运算图片内部膨胀) 6. cv2.resize(改变图像大小) 7.cv2.putText(在图片上放上文本)

    7. cv2.putText(img, text, loc, text_font, font_scale, color, linestick) # 参数说明:img表示输入图片,text表示需要填写的 ...