Struts中Action三种接收参数的方式?
前言:
前面已经有一篇随笔介绍了Struts2的大概原理。本文就Struts2中Action与jsp页面进行数据对接时介绍几种常见方法!
值栈ValueStack
3个Action
Action1
package com.gdufe.action;import com.opensymphony.xwork2.ActionSupport;/** Action接收参数之后通过set方法赋给普通变量age,name;*/ public class UserAction1 extends ActionSupport{private int age;private String name;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String execute(){return SUCCESS;}public String test(){System.out.println(age +"|"+ name);return SUCCESS;} }
View Code
Action2
package com.gdufe.action;import com.gdufe.pojo.User; import com.opensymphony.xwork2.ActionSupport;/** Action接收参数之后赋给引用对象“user”,内部是set方法赋值*/ public class UserAction2 extends ActionSupport {private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String test(){System.out.println(user.getName() + "|" + user.getAge());return "success";} }
View Code
Action3
package com.gdufe.action;import com.gdufe.pojo.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven;public class UserAction3 extends ActionSupport implements ModelDriven<User> {private User user = new User();public String test(){System.out.println(user.getName() + "|" + user.getAge());return "success";}public User getModel() {return user;} }
View Code
2个页面
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body>
<h2>Action传值测试</h2>
<a href="userAction1!test?age=8&name=admin">test1:Attribution</a> <br>
<a href="userAction2!test?user.age=8&user.name=admin">test2:JavaBean</a> <br>
<a href="userAction3!test?age=8&name=admin">test3:ModelDriven</a> <br>
</body> </html>
success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><h2>Action传值双击debug</h2><s:debug></s:debug> <!-- debug重要的strut2标签调试工具 --></body> </html>
1个struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><!-- devMode设置为开发模式 --><constant name="struts.devMode" value="true" /><package name="default" extends="struts-default"><!-- 注:因为Action采用DMI方式,故不需要指明method 以及 ‘result’ --><action name="userAction1" class="com.gdufe.action.UserAction1" ><result>/success.jsp</result></action><action name="userAction2" class="com.gdufe.action.UserAction2" ><result>/success.jsp</result></action><action name="userAction3" class="com.gdufe.action.UserAction3" ><result>/success.jsp</result></action></package></struts>
运行结果:
对应Action1——------------------*-------------------------
对应Action2——------------------*-------------------------
对应Action3——------------------*-------------------------
注意:新手的话请勿按部就班,因为还有初始配置没有说明,比如jar包及web.xml配置。详细配置自己读manual帮助文档或者上网参考!
==============================
结语:近期在接手Web开发时,数据对接不熟练;鉴于此,才再次翻起struts2的一些基础知识加深理解。希望能给有打算从事Java的朋友些许借鉴!
转载于:https://www.cnblogs.com/SeaSky0606/p/4694777.html
Struts中Action三种接收参数的方式?相关推荐
- Struts2中Action的属性接收参数
Struts2中Action的属性接收参数,有三种传递并接收参数的方式,第一种是在Action添加成员属性接收参数,第二种是域模型,就是利用对象域来进行传递和接收参数,第三种是ModelDriven接 ...
- struts中action与页面之间的传值方式
1.默认配置下的excute方法传值 如何把登陆页面中的用户名传递到登录成功的页面中呢? 有三种方式, 1,使用默认的action的传递方式. 2,自定义一个vo,在action中使用这个vo 3,使 ...
- winform 填充圆形 锯齿_Qt项目中,三种图形渐变填充方式详细总结
总第40篇 本文主要详细梳理了Qt项目开发过程中,对图形的三种渐变填充方式,以便后面参考. 在Qt中,目前支持三种渐变填充方式,这三种方式都是QGradient的子类,它可以与画刷 QBrush组合使 ...
- vue 如何将参数放到连接上_通过Vue路由传参的两种方式及Vue组件中接收参数的方式...
1. Vue传参方式 1.1 通过动态路由传参 我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件.例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染.那 ...
- C#中的三种委托方式:Func委托,Action委托,Predicate委托
C#中的三种委托方式:Func委托,Action委托,Predicate委托. Func,Action,Predicate全面解析 首先来说明Func委托,通过MSDN我们可以了解到,Func委托有如 ...
- python中什么是可变参数_详解Python的三种可变参数
详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...
- Vue中的三种Watcher
Vue中的三种Watcher Vue可以说存在三种watcher,第一种是在定义data函数时定义数据的render watcher:第二种是computed watcher,是computed函数在 ...
- 四旋翼飞行器12——飞控接收机的三种接收模式
四旋翼飞行器12--飞控接收机的三种接收模式 文章目录 四旋翼飞行器12--飞控接收机的三种接收模式 一.PWM型 二.PPM型 三.SBUS 无线遥控就是利用高频无线电波实现对模型的控制.如天地飞的 ...
- Oracle的join默认为,Oracle中的三种Join方法详解
这里将为大家介绍Oracle中的三种Join方法,Nested loop join.Sort merge join和Hash join.整理出来以便帮助大家学习. 基本概念 Nested loop j ...
最新文章
- 2022-2028年中国内衣用热熔胶膜行业发展现状调查及市场分析预测报告
- NYOJ 453 小珂的烦恼
- NETCORE openSUSE docker 安装
- HDFS High Availability体系介绍(Using the Quorum Journal Manager)
- 机器学习---knn之价格预测
- WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件
- 纯IPv6环境App适配的坑
- 跨服务器 快速 导入数据表记录 Insert into SELECT
- Bash常用快捷键及其作用
- SpringBoot 异常回滚 事务的使用___Springboot @Transactional 事务不回滚
- spark broadcast的TorrentBroadcast实现
- 数据挖掘项目:银行信用评分卡建模分析(上篇)
- gulp——用自动化构建工具增强你的工作流程
- sql判断为0_SQL简单语义分析概述
- DAX基础1:快速熟悉DAX的使用环境之Power BI
- 在线文档方案---Google docs
- 小学生打扫计算机教室的简报,简报第33期:我校开展“清扫校园”卫生大扫除活动...
- 小锦的软件评测师备考笔记
- python语言进行生日悖论分析--随机试验方法
- zxing扫描条形码 ios
热门文章
- 帧大小超过交换机mtu_tcpip – UDP中的MTU如何为65535,但以太网不允许超过1500字节的帧大小...
- python中print怎么用_python的print怎么用
- 帆软报表多行多条数据写入表_在线报表FineReport中多数据集如何实现层式报表...
- 思科网络基础课件_上海思科CCNA培训、思科网络工程师培训
- oracle 定时清理表数据,关于Oracle存储过程和调度器实现自动对数据库过期数据清除的问题...
- batchnorm pytorch_GitHub趋势榜第一:TensorFlow+PyTorch深度学习资源大汇总
- c语言高函数正确形式,计算机二级C语言考点解析:函数
- html调用deeplink,如何优雅地从浏览器打开本地应用deeplink
- js javascript UTF-8 GB2312编码转换
- 公众平台模板消息所在行业_微信公众号模板消息功能怎么快速推送?