此系列博文基于同一个项目已上传至github  传送门

  JavaWeb_(Struts2框架)Struts创建Action的三种方式  传送门

  JavaWeb_(Struts2框架)struts.xml核心配置、动态方法调用、结果集的处理  传送门

  JavaWeb_(Struts2框架)Log4j的配置以及解决中文乱码  传送门

  JavaWeb_(Struts2框架)参数传递之接收参数与传递参数  传送门

  JavaWeb_(Struts2框架)Ognl小案例查询帖子  传送门

  JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型  传送门

  JavaWeb_(Struts2框架)拦截器interceptor  传送门

一、接收参数

  第一种方法

  【常用】1、继承implements ModelDriven<User>

  1. public class UserAction extends ActionSupport implements ModelDriven<User>{

      2、创建一个对象,不要加get()和set()方法

  1. public User user = new User();

      3、实现getModel()方法

  1. @Override
  2. public User getModel() {
  3. // TODO Auto-generated method stub
  4. return user;
  5. }

  1. package com.Gary.web;
  2.  
  3. import org.apache.struts2.ServletActionContext;
  4.  
  5. import com.Gary.domain.User;
  6. import com.Gary.service.UserService;
  7. import com.opensymphony.xwork2.ActionSupport;
  8. import com.opensymphony.xwork2.ModelDriven;
  9.  
  10. public class UserAction extends ActionSupport implements ModelDriven<User>{
  11.  
  12. public User user = new User();
  13.  
  14. public String login() throws Exception {
  15.  
  16. System.out.println("login()方法");
  17. System.out.println(user.getUsername());
  18. UserService userService = new UserService();
  19. boolean success = userService.findUser(user);
  20. if(success)
  21. {
  22. return "success";
  23. }else{
  24. ServletActionContext.getRequest().setAttribute("error", "用户名或密码错误!!!");
  25. return "error";
  26. }
  27.  
  28. }
  29.  
  30. //注册
  31. public String register() throws Exception {
  32.  
  33. System.err.println("register()方法");
  34.  
  35. return null;
  36. }
  37.  
  38. //kill方法
  39. public String kill() throws Exception {
  40.  
  41. System.err.println("kill()方法");
  42.  
  43. return null;
  44. }
  45.  
  46. @Override
  47. public User getModel() {
  48. // TODO Auto-generated method stub
  49. return user;
  50. }
  51. }

UserAction.java

  第二种方法

  1、添加属性驱动

  1. //添加属性驱动
  2. public String username;
  3. public String password;
  4.  
  5. public String getUsername() {
  6. return username;
  7. }
  8.  
  9. public void setUsername(String username) {
  10. this.username = username;
  11. }
  12.  
  13. public String getPassword() {
  14. return password;
  15. }
  16.  
  17. public void setPassword(String password) {
  18. this.password = password;
  19. }

  1. package com.Gary.web;
  2.  
  3. import org.apache.struts2.ServletActionContext;
  4.  
  5. import com.Gary.domain.User;
  6. import com.Gary.service.UserService;
  7. import com.opensymphony.xwork2.ActionSupport;
  8. import com.opensymphony.xwork2.ModelDriven;
  9.  
  10. public class UserAction extends ActionSupport{
  11.  
  12. //public User user = new User();
  13.  
  14. //添加属性驱动
  15. public String username;
  16. public String password;
  17.  
  18. public String getUsername() {
  19. return username;
  20. }
  21.  
  22. public void setUsername(String username) {
  23. this.username = username;
  24. }
  25.  
  26. public String getPassword() {
  27. return password;
  28. }
  29.  
  30. public void setPassword(String password) {
  31. this.password = password;
  32. }
  33.  
  34. public String login() throws Exception {
  35.  
  36. System.out.println("login()方法");
  37. System.out.println(username+":"+ password);
  38.  
  39. User user = new User();
  40. user.setUsername(username);
  41. user.setPassword(password);
  42.  
  43. UserService userService = new UserService();
  44. boolean success = userService.findUser(user);
  45. if(success)
  46. {
  47. return "success";
  48. }else{
  49. ServletActionContext.getRequest().setAttribute("error", "用户名或密码错误!!!");
  50. return "error";
  51. }
  52.  
  53. }
  54.  
  55. //注册
  56. public String register() throws Exception {
  57.  
  58. System.err.println("register()方法");
  59.  
  60. return null;
  61. }
  62.  
  63. //kill方法
  64. public String kill() throws Exception {
  65.  
  66. System.err.println("kill()方法");
  67.  
  68. return null;
  69. }
  70.  
  71. }

UserAction.java

  第三种方法

  在login.jsp中修改登陆和注册标签框

  1. <label for="username" class="username_label"> 用 户 名 <input maxlength="20" name="user.username" type="text" placeholder="您的用户名和登录名" />
  2. </label>
  1. <label for="username" class="other_label"> 设 置 密 码 <input maxlength="20" type="password" name="user.password" placeholder="建议至少使用两种字符组合" />
  2. </label>

  UserAction.java中直接通过user.getUsername()和user.setUsername()直接得到前台获取到的值

  1. public User user;
  2.  
  3. public User getUser() {
  4. return user;
  5. }
  6.  
  7. public void setUser(User user) {
  8. this.user = user;
  9. }
  10.  
  11. public String login() throws Exception {
  12.  
  13. System.out.println("login()方法");
  14. System.out.println(user.getUsername()+":"+ user.getPassword());
  15.  
  16. UserService userService = new UserService();
  17. boolean success = userService.findUser(user);
  18. if(success)
  19. {
  20. return "success";
  21. }else{
  22. ServletActionContext.getRequest().setAttribute("error", "用户名或密码错误!!!");
  23. return "error";
  24. }
  25.  
  26. }

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <!DOCTYPE html>
  3. <html>
  4.  
  5. <head>
  6. <meta charset="UTF-8">
  7.  
  8. <link rel="stylesheet" href="css/head.css" />
  9. <link rel="stylesheet" type="text/css" href="css/login.css" />
  10. </head>
  11.  
  12. <body>
  13. <div class="dvhead">
  14. <div class="dvlogo">
  15. <a href="index.html">你问我答</a>
  16. </div>
  17. <div class="dvsearch">10秒钟注册账号,找到你的同学</div>
  18. <div class="dvreg">
  19. 已有账号,立即&nbsp;<a href="login.html">登录</a>
  20. </div>
  21. </div>
  22. <section class="sec">
  23. <form action="${pageContext.request.contextPath }/LoginAction_login" method="post">
  24. <div class="register-box">
  25. <label for="username" class="username_label"> 用 户 名 <input maxlength="20" name="user.username" type="text" placeholder="您的用户名和登录名" />
  26. </label>
  27. <div class="tips"></div>
  28. </div>
  29. <div class="register-box">
  30. <label for="username" class="other_label"> 设 置 密 码 <input maxlength="20" type="password" name="user.password" placeholder="建议至少使用两种字符组合" />
  31. </label>
  32. <div class="tips"></div>
  33. </div>
  34. <div class="arguement">
  35. <input type="checkbox" id="xieyi" /> 阅读并同意 <a href="javascript:void(0)">《你问我答用户注册协议》</a> <a href="register.html">没有账号,立即注册</a>
  36. <div class="tips" style="color: red">${error}</div>
  37. </div>
  38. <div class="submit_btn">
  39. <button type="submit" id="submit_btn">立 即 登录</button>
  40. </div>
  41. </form>
  42. </section>
  43. <script src="js/index.js" type="text/javascript" charset="utf-8"></script>
  44. </body>

login.jsp

  1. package com.Gary.web;
  2.  
  3. import org.apache.struts2.ServletActionContext;
  4.  
  5. import com.Gary.domain.User;
  6. import com.Gary.service.UserService;
  7. import com.opensymphony.xwork2.ActionSupport;
  8. import com.opensymphony.xwork2.ModelDriven;
  9.  
  10. public class UserAction extends ActionSupport{
  11.  
  12. public User user;
  13.  
  14. public User getUser() {
  15. return user;
  16. }
  17.  
  18. public void setUser(User user) {
  19. this.user = user;
  20. }
  21.  
  22. public String login() throws Exception {
  23.  
  24. System.out.println("login()方法");
  25. System.out.println(user.getUsername()+":"+ user.getPassword());
  26.  
  27. UserService userService = new UserService();
  28. boolean success = userService.findUser(user);
  29. if(success)
  30. {
  31. return "success";
  32. }else{
  33. ServletActionContext.getRequest().setAttribute("error", "用户名或密码错误!!!");
  34. return "error";
  35. }
  36.  
  37. }
  38.  
  39. //注册
  40. public String register() throws Exception {
  41.  
  42. System.err.println("register()方法");
  43.  
  44. return null;
  45. }
  46.  
  47. //kill方法
  48. public String kill() throws Exception {
  49.  
  50. System.err.println("kill()方法");
  51.  
  52. return null;
  53. }
  54.  
  55. }

UserAction.java

二、传递参数

  在ImplAction.java中通过login()方法添加<key,value>到session域和application域中

  1. public String login() throws Exception
  2. {
  3. //得到原生的request域
  4. //ServletActionContext.getRequest().setAttribute("username", "123");
  5. //ServletActionContext.getRequest().setAttribute("password", "123");
  6.  
  7. ActionContext.getContext().put("username", "123");
  8. ActionContext.getContext().put("password", "123");
  9.  
  10. //获得session
  11. Map<String,Object> session = ActionContext.getContext().getSession();
  12. session.put("mysession", "这是session域");
  13. //获得application
  14. Map<String,Object> application = ActionContext.getContext().getApplication();
  15. application.put("myapplication", "这是application域");
  16.  
  17. //获得原生的request
  18. HttpServletRequest request = ServletActionContext.getRequest();
  19.  
  20. //获得原生的response
  21. HttpServletResponse response = ServletActionContext.getResponse();
  22.  
  23. return "toLogin";
  24. }

  struts.xml中动态方法配置了action,将web层ImplAction中的login()转发到com.Gary.web.UserAction中的login()方法

  1. <action name="LoginAction_*" class="com.Gary.web.UserAction" method="{1}">
  2. <!-- 默认为转发 redirect设置为重定向 -->
  3. <result name="success" type="redirect">/index.html</result>
  4. <!-- 默认为转发 -->
  5. <result name="error">/login.jsp</result>
  6. </action>
  7.  
  8. <action name="LoginActionImpl_*" class="com.Gary.web.ImplAction" method="{1}">
  9. <!-- 转发到LoginActionDefault -->
  10. <result name="defaultAction" type="chain">LoginActionDefault</result>
  11. <!-- 重定向到Action(LoginAction_*) -->
  12. <result name="toLogin" type="redirectAction">
  13. <param name="actionName">LoginAction_login</param>
  14.  
  15. <param name="username">${username}</param>
  16. <param name="password">${password}</param>
  17. </result>
  18. </action>

  在UserAction.java中输出放置在session域和application域中的内容

  1. public String login() throws Exception {
  2.  
  3. System.out.println("login()方法");
  4. System.out.println(user.getUsername()+":"+user.getPassword());
  5.  
  6. System.out.println("session域..."+ActionContext.getContext().getSession().get("mysession"));
  7. System.out.println("application域..."+ActionContext.getContext().getApplication().get("myapplication"));
  8.  
  9. UserService userService = new UserService();
  10. boolean success = userService.findUser(user);
  11.  
  12. if(success)
  13. {
  14. return "success";
  15. }else{
  16. ServletActionContext.getRequest().setAttribute("error", "用户名或密码错误!!!");
  17. return "error";
  18. }
  19.  
  20. }

  1. package com.Gary.web;
  2.  
  3. import java.util.Map;
  4.  
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7.  
  8. import org.apache.struts2.ServletActionContext;
  9.  
  10. import com.opensymphony.xwork2.Action;
  11. import com.opensymphony.xwork2.ActionContext;
  12.  
  13. public class ImplAction implements Action{
  14.  
  15. @Override
  16. public String execute() throws Exception {
  17. System.out.println("这是实现了Action接口的action");
  18. return "defaultAction";
  19. }
  20.  
  21. public String login() throws Exception
  22. {
  23. //得到原生的request域
  24. //ServletActionContext.getRequest().setAttribute("username", "123");
  25. //ServletActionContext.getRequest().setAttribute("password", "123");
  26.  
  27. ActionContext.getContext().put("username", "123");
  28. ActionContext.getContext().put("password", "123");
  29.  
  30. //获得session
  31. Map<String,Object> session = ActionContext.getContext().getSession();
  32. session.put("mysession", "这是session域");
  33. //获得application
  34. Map<String,Object> application = ActionContext.getContext().getApplication();
  35. application.put("myapplication", "这是application域");
  36.  
  37. //获得原生的request
  38. HttpServletRequest request = ServletActionContext.getRequest();
  39.  
  40. //获得原生的response
  41. HttpServletResponse response = ServletActionContext.getResponse();
  42.  
  43. return "toLogin";
  44. }
  45.  
  46. }

ImplAction.java

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
  4. "http://struts.apache.org/dtds/struts-2.5.dtd">
  5.  
  6. <struts>
  7.  
  8. <constant name="struts.devMode" value="true"></constant>
  9. <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
  10.  
  11. <!-- name:配置包名 namespace:给action的访问路径定义一个命名空间 -->
  12. <package name="MyPackage" namespace="/" extends="struts-default">
  13. <!-- 增加动态方法调用的安全性 -->
  14. <global-allowed-methods>regex:.*</global-allowed-methods>
  15.  
  16. <!-- action:配置action类
  17. name:决定了action访问的资源名称 servlet:url-pattern
  18. class:action的完整类名
  19. method:指定调用action中的哪个方法来去处理请求 -->
  20.  
  21. <action name="LoginAction_*" class="com.Gary.web.UserAction" method="{1}">
  22. <!-- 默认为转发 redirect设置为重定向 -->
  23. <result name="success" type="redirect">/index.html</result>
  24. <!-- 默认为转发 -->
  25. <result name="error">/login.jsp</result>
  26. </action>
  27.  
  28. <action name="LoginActionDefault" class="com.Gary.web.DefaultAction" method="execute">
  29.  
  30. </action>
  31.  
  32. <action name="LoginActionImpl_*" class="com.Gary.web.ImplAction" method="{1}">
  33. <!-- 转发到LoginActionDefault -->
  34. <result name="defaultAction" type="chain">LoginActionDefault</result>
  35. <!-- 重定向到Action(LoginAction_*) -->
  36. <result name="toLogin" type="redirectAction">
  37. <param name="actionName">LoginAction_login</param>
  38.  
  39. <param name="username">${username}</param>
  40. <param name="password">${password}</param>
  41. </result>
  42. </action>
  43. </package>
  44. </struts>

struts.xml

  1. package com.Gary.web;
  2.  
  3. import org.apache.struts2.ServletActionContext;
  4.  
  5. import com.Gary.domain.User;
  6. import com.Gary.service.UserService;
  7. import com.opensymphony.xwork2.ActionContext;
  8. import com.opensymphony.xwork2.ActionSupport;
  9. import com.opensymphony.xwork2.ModelDriven;
  10.  
  11. public class UserAction extends ActionSupport implements ModelDriven<User>{
  12.  
  13. public User user = new User();
  14.  
  15. public String login() throws Exception {
  16.  
  17. System.out.println("login()方法");
  18. System.out.println(user.getUsername()+":"+user.getPassword());
  19.  
  20. System.out.println("session域..."+ActionContext.getContext().getSession().get("mysession"));
  21. System.out.println("application域..."+ActionContext.getContext().getApplication().get("myapplication"));
  22.  
  23. UserService userService = new UserService();
  24. boolean success = userService.findUser(user);
  25.  
  26. if(success)
  27. {
  28. return "success";
  29. }else{
  30. ServletActionContext.getRequest().setAttribute("error", "用户名或密码错误!!!");
  31. return "error";
  32. }
  33.  
  34. }
  35.  
  36. //注册
  37. public String register() throws Exception {
  38.  
  39. System.err.println("register()方法");
  40.  
  41. return null;
  42. }
  43.  
  44. //kill方法
  45. public String kill() throws Exception {
  46.  
  47. System.err.println("kill()方法");
  48.  
  49. return null;
  50. }
  51.  
  52. @Override
  53. public User getModel() {
  54. // TODO Auto-generated method stub
  55. return user;
  56. }
  57. }

UserAction.java

JavaWeb_(Struts2框架)参数传递之接收参数与传递参数的更多相关文章

  1. JavaWeb_(Struts2框架)拦截器interceptor

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  2. JavaWeb_(Struts2框架)Action中struts-default下result的各种转发类型

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  3. JavaWeb_(Struts2框架)Ognl小案例查询帖子

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  4. JavaWeb_(Struts2框架)Log4j的配置以及解决中文乱码

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  5. JavaWeb_(Struts2框架)struts.xml核心配置、动态方法调用、结果集的处理

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  6. JavaWeb_(Struts2框架)Struts创建Action的三种方式

    此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...

  7. JavaWeb_(Struts2框架)使用Struts框架实现用户的登陆

    JavaWeb_(Struts2框架)使用Servlet实现用户的登陆 传送门 JavaWeb_(Struts2框架)Servlet与Struts区别 传送门 MySQL数据库中存在Gary用户,密码 ...

  8. JavaWeb_(Struts2框架)使用Servlet实现用户的登陆

    JavaWeb_(Struts2框架)使用Struts框架实现用户的登陆 传送门 JavaWeb_(Struts2框架)Servlet与Struts区别 传送门 MySQL数据库中存在Gary用户,密 ...

  9. 17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限

     1  Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2  广播被分为两种不同的类型:"普通广播( ...

随机推荐

  1. 怎样创建并使用 vue 组件 (component) ?

    组件化开发 需要使用到组件, 围绕组件, Vue 提供了一系列功能方法, 这里仅记录组件的 最简单 的使用方法. 1. 通过 Vue.component(tagName, options) 注册一个 ...

  2. Fullscreen API:全屏操作

    function launchFullscreen(element) { if(element.requestFullscreen) { element.requestFullscreen(); } ...

  3. golang(8):channel读写 & goroutine 通信

    goroutine 1.进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独 ...

  4. JS基础_while循环

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. element-ui中关闭对话框清空验证,清除form表单数据

    对于elementUI中对话框,点击对话框和关闭按钮 怎么清空验证,清空form表单,避免二次点击还会有 验证错误的提示.今天终于自己查资料解决了,分享给大家 1.首先在你的对话框 取消按钮 加一个c ...

  6. node jade || ejs引擎模板

    1.jade:破坏式2.ejs:保留式 -------------------------------------------------------------------------------- ...

  7. IIS 6.0 PUT上传 任意文件创建漏洞

    IIS 6.0 PUT上传 任意文件创建漏洞 require 1.IIS Server在Web服务扩展中开启了WebDAV. 2.IIS配置了可以写入的权限,包括网站 1.根目录 2.子文件夹 3.i ...

  8. 3.移动端自动化测试-appium环境搭建(原理)

    appium自动化原理: 需要服务端(appium启动),手机端(adb连接设备),脚本端(pycharm)就可以进行 自己总结下: 手机和脚本连接:1.adb连接,2靠脚本导入驱动. 脚本和服务端连 ...

  9. SokcetClient c++

    #include "pch.h" #include "SokcetClient.h" #include <iostream> #include &l ...

  10. Java面向对象(一)

    面向对象(Object Oriented) 面向过程:事物比较简单.将问题分解为若干个步骤.按照步骤依次执行.面向对象:事物比较复杂.在解决面向对象的过程中,最后的执行部分还是面向过程方式,面向过程和 ...