jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。<s:a action><s:iterator><s:param>ognl表达式
在编写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获取就行了。
jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。<s:a action><s:iterator><s:param>ognl表达式的更多相关文章
- jsp页面用struts2标签展示List<Object>类型的数据
今天遇到一个问题,一个List<Object>类型的数据,是直接从sql查出来的数据,要在前端展示,原来的方法不知道为什么不能展示,后来找了好久,找到了一个靠谱的方法,记录一下 <s ...
- js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意
js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意 如 ${ } <%%> 等
- jsp与jsp页面间的值传递与接收
1.使用<a>标签 传递值 <a href="index.jsp?name=增加数据">增加数据</a> ///////目标页面/////值// ...
- jsp页面中jstl标签详解
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- 【转】jsp页面中jstl标签详解
原文地址: JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实 ...
- Strut2在Action-Result的配置文件内转到jsp页面时用URL传递参数
Struts.2.5.5版本在Action配置文件中内有如下result,其中role是Action类中的属性,在配置文件中用到OGNL表达式 <result name="input& ...
- jsp页面中jstl标签详解[转]
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- Java jsp页面中jstl标签详解
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- jsp页面中自定义标签的小演示
在实习期遇到公司的pg自定义标签了,同事要我自己自学一下 自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet.JSP标签扩展可以让你创建新的标签并且可以直接 ...
随机推荐
- oracle中查询表中的触发器,关闭启用操作
1.查询指定表中有哪些触发器 select * from all_triggers WHERE table_name='表名' 2.禁用指定表中所有的触发器 alter table table_nam ...
- sql 将英文句子中的单词首字母转换为大写
create function dbo.pTitleCase(@StrIn nvarchar(max))returns nvarchar(max)as begin; declare @StrOut n ...
- Spring的启动流程
spring的启动是建筑在servlet容器之上的,所有web工程的初始位置就是web.xml,它配置了servlet的上下文(context)和监听器(Listener),下面就来看看web.xml ...
- 二、MySQL介绍
目录 一.MySQL背景 二.MySQL的优点 三.MySQL安装 四.MySQL服务的启动和停止 五.MySQL登录和退出 六.MySQL常用命令 (一)常用命令 (二)语法规范 (三)SQL语言细 ...
- MySQL8.0.17下载与安装
下载环境:Windows 10 下载地址: https://dev.mysql.com/downloads/mysql/ 1.解压压缩包,修改解压目录. 2.在E:\mysql-8.0.17-winx ...
- 解决故障码400,“”The plain HTTP request was sent to HTTPS port“”
Nginx HTTP服务器的报错"400 Bad Request: The plain HTTP request was sent to HTTPS port",本文将讲解如何解决 ...
- 十:Razor语法
1.Razor简介 不是一种代码语言,而是视图中使用的代码引擎. 它以简洁的类似客户端的语法结构,呈现网页服务端代码功能 它替代了ASPX页面的“<%...%>”代码块语法. 在编写时使用 ...
- eclipse新建jsp模版设置
第一步:找到JSP模板 eclipse -- >perferences - >Web -> jsp files -Editor ->templates: 第二步:准备编辑JSP ...
- Educational Codeforces Round 40 C. Matrix Walk( 思维)
Educational Codeforces Round 40 (Rated for Div. 2) C. Matrix Walk time limit per test 1 second memor ...
- flask学习导航主页
我就学习了网易课堂的知了Flaskk. 十分感谢. └—01-Flask视图和URL ├—课时001.[Flask预热]课程介绍 ├—课时002.[Flask预热]Flask课程准备工作 ├—课时00 ...