先给上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;
/**
* 方式一:直接在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>username</td>
<td><input type="text" name="name"></td>
<td> </td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="pass"></td>
<td> </td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td> </td>
</tr>
</table>
</form>

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

另外一种传參方式:

import com.opensymphony.xwork2.ActionSupport;
/**
* 方式二:把属性封装到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>username</td>
<td><input type="text" name="user.name"></td>
<td> </td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="user.pass"></td>
<td> </td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td> </td>
</tr>
</table>
</form>

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

第三种传參方式:

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
* 方式三:实现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>username</td>
<td><input type="text" name="name"></td>
<td> </td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="pass"></td>
<td> </td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td> </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;
}
}

在开发中最经常使用的就是DTO和实现ModelDriven两种。要掌握哟!~


刚開始学习的人非常有用:struts2中将jsp数据传到action的几种方式的更多相关文章

  1. 刚開始学习的人非常有用:纯struts框架实现用户登陆

    本人新手一枚.也在学习ssh.高手建议从struts2開始学起,所以我就先仅仅用struts2写了一个demo.能够有助于理解struts2在项目中的作用. 首先简单了解一下struts2 的MVC模 ...

  2. 刚開始学习的人非常有用之chm结尾的參考手冊打开后无法正常显示

    从网上下载了struts2的參考手冊.chm(本文适用全部已.chm结尾的文件)不能正常打开使用. 如图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/ ...

  3. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  4. wxWidgets刚開始学习的人导引(2)——下载、安装wxWidgets

    wxWidgets刚開始学习的人导引全目录   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxS ...

  5. wxWidgets刚開始学习的人导引(4)——wxWidgets学习资料及利用方法指导

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  6. 刚開始学习的人制作VMOS场效应管小功放

    VMOS场效应管既有电子管的长处又有晶体管的长处,用它制作的功率放大器声音醇厚.甜美,动态范围大.频率响应好.因此近年来在音响设备中得到了广泛应用. 大功率的场效应管功率放大器.电.路比較复杂.制作和 ...

  7. wxWidgets刚開始学习的人导引(1)——前言

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  8. 对于刚開始学习的人Xcode最经常使用的快捷键

    对于刚開始学习的人而言,好多人都是直接使用鼠标进行操作.差点儿非常少使用快捷键,从而再练习编程时比别人慢那么一点,今天就把刚開始学习的人最经常使用的几个快捷键给大家总结下,当然欢迎大家补充. (1)c ...

  9. 【React Native开发】React Native配置执行官方样例-刚開始学习的人的福音(8)

    ),React Native技术交流4群(458982758),请不要反复加群! 欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文 ...

随机推荐

  1. android 可拖动控件 ontouchevent

    首先附上文章的转载内容的链接: 学习android 可拖动事件首先需要对android的屏幕和touchevent参数建立一个详细的知识结构. 1.android坐标系统 一.首先明确一下 andro ...

  2. U - Three displays

    Problem description It is the middle of 2018 and Maria Stepanovna, who lives outside Krasnokamensk ( ...

  3. 身份认证防止重放攻击的challenge-response方法

    或者叫询问-应答机制. 基于挑战/应答(Challenge/Response)方式的身份认证系统就是每次认证时认证服务器端都给客户端发送一个不同的"挑战"字串,客户端程序收到这个& ...

  4. wx:for

    .JSPage({ data: { input_data: [ { id: 1, unique: "unique1" }, { id: 2, unique: "uniqu ...

  5. Linux 帮助与语言设置以及(\)

    1.命令太长可以用反斜杠(\)来转义回车键,使用命令连续到下一行.注意:反斜杠后就立刻接着特殊字符才能转义. 2.修改语系为英文 LANG=en_US.utf8 export LC ALL=en_US ...

  6. Vuex教程简单实例

    什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是data中需要共用的属性. ...

  7. PAT_A1118#Birds in Forest

    Source: PAT A1118 Birds in Forest (25 分) Description: Some scientists took pictures of thousands of ...

  8. MATLAB图形界面设计(下)

    文章参考Blue Mountain https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4307777.html 一.菜单设计 1.建立菜单项 (1)建 ...

  9. Day5 练习

    1. 2. 要加强对代码效率的思考 3. 4. 知识点:1)多变量的同时赋值 2)元素的不可修改性:(1,2)=(3,4)与(a,b)= (b,a)     联想指针.地址去理解  :可用id()或t ...

  10. 【剑指Offer】46、圆圈中最后剩下的数

      题目描述:   每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后 ...