jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。s:a actions:iterators:paramognl表达式...

     在编写SSH2项目的时候,除了使用<s:form>表单标签向Action类跳转并传递参数之外,很更多时候还需要用到<s:a action="XXX.action">这个链接标签进行跳转,此时,传递需要的参数必不可少。此外,在jsp页面获取Action类传来的数据时,也需要留心一下属性获取的方式。

     之前在这里,由于我的粗心大意,导致了jsp页面上没有相应的数据显示出来。原本以为是没有从数据库读取到数据,使得我从持久层、dao层、service层、action类检查了好几遍,修改了多次代码,结果却发现,是最后的jsp没把数据显示出来。所以有必要做个记录,以后避免此类情况再次发生。


 

(1)  jsp页面获取属性值

AbcAction.java  -->  xxx.jsp

AbcAction.java类里有属性List<Article> articles,并有相应的GetterSetter方法。

在xxx.jsp页面,通过<s:iterator>输出

<s:iterator>标签里有id属性时,在输出属性值时,要加上#

<s:iterator value="articles"  id="article" status="st"><!-- 有id属性 --><s:property value="#article.title"/>        <!-- 输出article里的属性时需要加上# -->
</s:iterator><s:iterator value="articles" status="st"><!-- 没有id属性 --><s:property value="title"/>         <!-- 直接可输出article里的属性 -->
</s:iterator>

若无需使用<s:iterator>标签,仅需<s:property value=""/>时

1)获取action类里的属性,<s:property value="article.title"/>,不添加#,否则无法获取属性值

2)获取非action类的属性,<s:property value="#session.user"/>,必须添加#,否则无法获取属性值


 

(2)jsp页面传递参数

 xxx.jsp  -->  AbcAction.java 

1)通过<s:param>标签

需在struts.xml文件中配置Abc.action

<s:a action="abc.action">跳转到abc.action,并传入articleid、articleName参数<s:param name="articleId"><s:property value="#article.id"/></s:param><s:param name="articleName" value="article.name"/></s:a>

当然AbcAction.java里必须由articleId的属性以及getterSetter方法。

 

2)通过href属性ch传递传递

<s:a href="abc.action?articleId=<s:property value='#article.id/'>">跳转到AbcAction.java,并给articleId属性赋值
</s:a>

 3)使用常用的表单提交,如果需要用到hidden隐藏域的话<input type="hidden"><s:hidden/>

<s:hidden name="username" value="#session.user"/>
#session.user这种方式无法获取session里的user,%{session.user}也不行,不知何故。
除非换成<input>标签,然后使用%{session.user}才行,像下面这样
<input type="hidden" name="username" value="${session.user}"/>。

不过一般不需要把session里的值放入hidden隐藏域里面,因为在一次会话中,session里的值会一直存在。当需要的时候,在Action类里直接通过ActionContext获取就行了。


 

转载于:https://www.cnblogs.com/MrReboot/p/6885198.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416696.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作总结4:拦截器的使用

1.拦截器综述 拦截器的功能是定义在Java拦截器规范。 拦截器规范定义了三种拦截点: 业务方法拦截, 生命周期回调侦听, 超时拦截(EJB)方法。 在容器的生命周期中进行拦截 public class DependencyInjectionInterceptor {PostConstructpublic void injectDependencies(Invoca…

快速入门系列之 Rust 语言 GitChat连接

Rust 是一枚新星&#xff0c;兼顾开发效率和执行效率的语言。本文以实例为导向&#xff0c;讲解 Rust 这门语言&#xff0c;适合有一定其他面向对象语言基础的人员快速入门。 本文将讲解如下内容&#xff1a; - Hello World 从头起 - 各种类型各种算 - 各式流程来控制 - 数组…

java -jar maven项目打包提示.jar中没有主清单属性

mvn package java -jar target/java_bottom_level_learning-1.0-SNAPSHOT.jar这里报错了&#xff1a; target/java_bottom_level_learning-1.0-SNAPSHOT.jar中没有主清单属性 我们打开 jar 中的 /META_INF/ MANIFEST.MF缺少项目启动项&#xff0c;即没有Main-Class 怎么处理呢…

工作总结5:插槽的使用

什么是插槽&#xff1f; 插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的<slot></slot>标…

pycharm 破解

亲测有效&#xff01; http://blog.lanyus.com/archives/174.html 备注&#xff1a; 注册码破解链接&#xff1a;http://idea.lanyus.com/ 将下载的jar包放入PyCharm.exe所在路径 如D:\pycharm\pycharm2017\PyCharm 2017.1.2\bin pycharm.exe.vmoptions 和pycharm64.exe.vmopti…

Java JVM 汇编代码入门 GitChat链接

为什么 new Integer(151)151&#xff1f;我来带你们一起学习下 JVM 汇编代码吧&#xff0c;窥探下神奇的 Java 中间语言到底什么样子的&#xff0c;能帮你更深入的理解 Java。 本文包含以下内容 工具介绍 JVM 汇编代码初见 汇编初步分析 局部变量生命周期 基础类型 大于 5 的…

Streaming 101

开宗明义&#xff01;本文根据Google Beam大神Tyler Akidau的系列文章《The world beyond batch: Streaming 101》(批处理之外的流式世界)整理而成&#xff0c; 主要讨论流式数据处理。在大数据领域&#xff0c;流式数据处理越发地重要了。原因有以下几点&#xff1a; 人们越来…

工作总结6:token问题

1.使用请求拦截器&#xff0c;拦截vue所有请求&#xff0c;增加token参数 使用倒数计时&#xff0c;假如token有效期60分钟&#xff0c;会在59分钟的时候去重新拿着refresh_Token&#xff0c;去请求新的token. 注意&#xff1a;如果一个账号允许多人登录使用&#xff0c;上述方…

从底层重学 Java 之四大整数 GitChat链接

从底层&#xff0c;从原理&#xff0c;我们来重学一次 Java。四大 Java 整数类 Byte、Short、Integer、Long 是我们比较常用的对象&#xff0c;他们的源码及实现是怎样的呢&#xff1f; 本系列秉承所有结论尽量从源码中来&#xff0c;没有源码的尽量标明出处。相关源码会附着在…

二重循环

一、回顾3种循环结构 1、while 语法 条件表达式的初始值&#xff1b; while(条件表达式){ 循环操作&#xff1b; 更改条件表达式的语句&#xff1b; } 特点&#xff1a;先判断&#xff0c;再执行&#xff0c;有可能一次循环都没有 适用的场合&#xff1a;循环次数未知 表现形式…

工作总结1:代码中漫花谷出现很多NBSP

代码复制的影响 手动删除 ctrl f 全部删除

winsw将命令部署为服务(比如springboot)

工具 https://github.com/winsw/winsw/releases 下载.netcore的exe就行&#xff0c;比如 https://github.com/winsw/winsw/releases/download/v2.9.0/WinSW.NETCore31.x64.exe PS&#xff1a;我为什么不下载net2那些版本&#xff0c;那些版本一看大小就是需要本地.netframewo…

GPU版的tensorflow在windows上的安装时的错误解决方案

1.用vs编译cuda的sample时会提示找不到”d3dx9.h”、”d3dx10.h”、”d3dx11.h”头文件的错误&#xff0c;如果没有安装这个插件&#xff0c;在TensorFlow里执行run方法时会导致电脑死机 解决方案;可从这里下载DXSDK_Jun10.exe。 2.import tensorflow as tf 时报 ImportError: …

ElementUI dialog嵌套蒙层遮挡问题

dialog嵌套会有蒙层遮挡问题&#xff0c;我们加两个属性解决他 <el-dialog :close-on-click-modal"false" title"选择图片" custom-class"imgSelectDialog" :visible.sync"imgSelectDialog" close"closeHandler" v-drag&…

excel转txt工具

有个任务需要读好多eccel&#xff0c;实际读起来并不方便&#xff0c;变手工把ecxcel转换成文本文档&#xff0c;心累。。。。于是闲暇写了个ecxcel转txt的小工具。主要是用的Spreadsheet::XLSX。 use strict;use warnings;use strict; use Spreadsheet::XLSX;die "Usage …

从底层重学 Java 之两大浮点类型 GitChat连接

从底层&#xff0c;从原理&#xff0c;我们来重学一次 Java。两大 Java 浮点类 Double、Float 是我们比较常用的对象&#xff0c;他们的源码及实现是怎样的呢&#xff1f; 本系列秉承所有结论尽量从源码中来&#xff0c;没有源码的尽量标明出处。相关源码会附着在文章中&#…

jquery点击完一个按钮,并且触发另一个按钮

$a.click(function(){ $b.trigger(click); }); 转载于:https://www.cnblogs.com/Neilisme/p/6890838.html

vue 中的动态传参和query传参

Vue router 如何传参 params、query 是什么&#xff1f; params&#xff1a;/router1/:id&#xff0c;这里的 id 叫做 params。例如/router1/123, /router1/789query&#xff1a;/router1?id123&#xff0c;这里的 id 叫做 query。例如/router1?id456 query 方式传参和接收…