在编写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表达式的更多相关文章

  1. jsp页面用struts2标签展示List<Object>类型的数据

    今天遇到一个问题,一个List<Object>类型的数据,是直接从sql查出来的数据,要在前端展示,原来的方法不知道为什么不能展示,后来找了好久,找到了一个靠谱的方法,记录一下 <s ...

  2. js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意

    js  和 css 中 不能使用 jsp  页面中一些 标签 和 java 代码等,应注意 如 ${ }  <%%>  等

  3. jsp与jsp页面间的值传递与接收

    1.使用<a>标签 传递值 <a href="index.jsp?name=增加数据">增加数据</a> ///////目标页面/////值// ...

  4. jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  5. 【转】jsp页面中jstl标签详解

    原文地址: JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实 ...

  6. Strut2在Action-Result的配置文件内转到jsp页面时用URL传递参数

    Struts.2.5.5版本在Action配置文件中内有如下result,其中role是Action类中的属性,在配置文件中用到OGNL表达式 <result name="input& ...

  7. jsp页面中jstl标签详解[转]

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  8. Java jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  9. jsp页面中自定义标签的小演示

    在实习期遇到公司的pg自定义标签了,同事要我自己自学一下 自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet.JSP标签扩展可以让你创建新的标签并且可以直接 ...

随机推荐

  1. 关于SpringMVC映射模型视图的几点小事

    一.SpringMVC概述 SpringMVC为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器, ...

  2. Linux学习(一)-安装vm虚拟机以及如何在虚拟机上安装Centos系统

    (一)基本说明 学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习. 1)安装软件vm12; 2)通过vm12创建一个虚拟机空间; 3)在vm12创建好的 ...

  3. 从零开始使用mocha测试

    mocha 需要在node环境下跑,请确保已经安装了node   1.新建一个文件夹 test   2.命令行切换到test目录下,执行命令:npm init ,出现选择按enter,一系列选择完成之 ...

  4. ADF简单介绍

    1.ADF也是用的MVC的分层模式,如下图所示 2.Model层代理数据服务将数据关联在View层,用户则是在View层的UI界面上的操作来更改Model层代理的数据,Controller控制层执行用 ...

  5. Python: NumPy, Pandas学习资料

    NumPy 学习资料 书籍 NumPy Cookbook_[Idris2012] NumPy Beginner's Guide,3rd_[Idris2015] Python数据分析基础教程:NumPy ...

  6. linux驱动程序与菜单关联

  7. 关于Linux连接工具mobaxterm显示中文乱码问题

    本人用的是MobaXterm Personal 9.1版本.近期发现连接上服务器,查看日志时,发现中文乱码,无法正常显示.甚是苦恼.百度搜索该工具显示乱码问题,无一人解决.提倡更换连接工具.无意间发现 ...

  8. Windows&Appium&Java&Python自动化测试-配置开发环境

    摘要 本篇博文,主要介绍借助Appium做移动端自动化测试的开发环境搭建,包括Java和Python Java环境:Appium+Maven+Idea+TestNG+Reportng Python环境 ...

  9. 【记忆化搜索/数位DP】zznu2175(长度为n的含有ACM的字符串)

    随机字符串 题目描述 起名字什么的最麻烦,我们来生成一些随机字符串吧 生成的字符串当然是有要求的: .长度不能超过n .字符串中仅包含大写字母 .生成的字符串必须包含字符串“ACM” ok,是不是很简 ...

  10. Muduo阅读

    创建了EventLoop对象的线程是IO线程,其主要功能是运行事件循环EventLoop::loop(), one loop per thread 事件循环必须在IO线程中运行 Reactor关键结构 ...