Struts的取值与标签
首先,我们都知道,在struts2中有一个valuestack。里面存放的就是action里的属性。同时,还有一个stackcontext,里面放的是map形式的request/session/attr/application。
在取值的时候
valuestack中的值
<s:property value="user.name">
或在任意的<s:/>标签内使用%{} (记得这个 在s标签内部 就得使用%{} )
stackcontext中的值
<s:property value="#attr.user.name"> (此时在request/session/attr/application中应该有一个user)
使用attr是在你自己也不知道user这个数据是放在request/session还是别的什么里。
再说说struts里的if
官方给出的指导里面 例子很简单
<s:if test="%{false}">
<div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
<div>Will Be Executed</div>
</s:elseif>
<s:else>
<div>Will Not Be Executed</div>
</s:else>
屏幕上会打印出Will Be Executed
这说明什么,这说明%{}取得值,不一定在valuestack中。
既然说到了strtus的if,我们不妨再看看jstl里面的if
再说jstl的if之前我们先看看EL运算符
jstl的if如下:
下来我们也看看我今天在用if遇到的问题
list是valuestack里面的对象
我想完成的功能是如果 list.getIndex(2).getContent()的内容是入网优先
就让下拉框默认选中入网优先
<s:if test="%{list.{content}[2]==入网优先}">
<option value="入网优先" selected="selected">入网优先</option>
</s:if>
<s:else>
<option value="入网优先">入网优先</option>
</s:else>
上面的代码肯定不能执行喽。为什么?
大家请参考 struts2 if标签示例
换句话说 我的代码应该改成下面的样子
<s:if test="%{list.{content}[2]==\"上网优先\"}">
<option value="上网优先" selected="selected">上网优先</option>
</s:if>
<s:else>
<option value="上网优先">上网优先</option>
</s:else>
##################################################################################################
这两天又看了一下这篇文章,觉得用list来放置数据不合适,
<s:if test="%{list.{content}[2]==\"上网优先\"}">
如果list的第二个元素放的是别的信息呢?
所以用map比较合适
<pre name="code" class="html"> <s:if test="%{resultMap.Fre_policy.content==\"上网优先\"}">
<option value="上网优先" selected="selected">上网优先</option>
</s:if>
<s:else>
<option value="上网优先">上网优先</option>
</s:else>
resultMap是hashmap型的,里面的key包括Fre_policy,而Fre_policy里面有个字段是content
参考资料
精通javaweb整合开发
http://hamlzf.iteye.com/blog/1669490
http://blog.csdn.net/liehuoliaoyuan/article/details/7426085
http://blog.csdn.net/dlf123321/article/details/28645369
http://hw1287789687.iteye.com/blog/1949722
Struts的取值与标签的更多相关文章
- struts2取值
http://www.cnblogs.com/yangy608/archive/2010/11/23/1885256.html struts2取值 1.标签取值方式一 通过<s:property ...
- Jquery 关于span标签的取值赋值用法
span是最简单的容器,可以当作一个形式标签,其取值赋值方法有别于一般的页面元素. //赋值 $("#spanid").html(value) //取值 $("#span ...
- jquery对strutrs2 <s:radio>标签的设置和取值
今天郁闷了1小时. 需求是这样的: <s:radio list="#{0:'男',1:'女'}" value="member.sex" id=" ...
- html常用标签的取值和赋值操作
我们在html页面当中,面对各种各样的标签,经常需要处理取值和赋值的问题,下面,就把常见的一些html标签元素的取值和赋值操作进行总结整理,以后备用. 1.button:改变button按钮上面的值, ...
- 页面传递的都是string ; 每个标签要有name的原因是为了取值 因为传递给后台是键值对的形式
页面传递的都是string ; 每个标签要有name的原因是为了取值 因为传递给后台是键值对的形式
- react 在IE9下input标签使用e.target.value取值失败
在react项目开发中,input标签使用onChange方法获取输入值改变state: <input type="text" id="redeemNum" ...
- 对<tr><td>标签里的input 循环取值
需求描述:单击table整行,跳转到具体的信息页面 关键就是获取整行的id,传给后台做查询,返回list 解决思路:用带参数函数传过去id,然后在js的函数中用$("#id"). ...
- struts2 页面标签或ognl表达式取值--未完待续
一.加#号取值和不加#号取值的解说 1.s:property 标签——value属性使用事项 1)涉及问题:取值时什么时候该加#,什么时候不加? 2)介绍 <s:property value=& ...
- struts2标签#、%、$取值
转自:https://blog.csdn.net/kosum/article/details/21375635 首先了解下OGNL的概念: OGNL是Object-Graph Navigation L ...
随机推荐
- ThreadLocal深入剖析
JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地编写出优美的多线程程序,Threa ...
- Markdown对应Yelee主题语法
概述 这里说的是Yelee主题的语法和原生语法是有些区别的:更多的基础语法可以到Cmd Markdown上面去查看:但是我觉得都会各有不同吧 注意这里说的不是真正意义上的Markdown语法 标题 一 ...
- ios开发之xcode环境介绍
作为一个刚入门ios开发的人来说,对于ios开发,对于xcode一切都是那么的陌生,那么我们如何开始我们的第一步呢?首先对开发的ide是必须要了解的,其实要对开发的语言要慢慢熟悉起来,今天我们先来熟悉 ...
- [Python监控]psutil模块简单使用
安装很简单 pip install psutil 官网地址为 https://pythonhosted.org/psutil/ (文档上有详细的api) github地址为 https://githu ...
- Java安全套接字扩展——JSSE
上节已经介绍了SSL/TLS协议的通信模式,而对于这些底层协议,如果要每个开发者都自己去实现显然会带来不必要的麻烦,正是为了解决这个问题Java为广大开发者提供了Java安全套接字扩展--JSSE,它 ...
- Android 高级控件(七)——RecyclerView的方方面面
Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...
- JDK的安装以及配置
JDK的安装以及配置 JDK(Java Development Kit),顾名思义,是 Java 语言的软件开发工具包(SDK). Android发开使用Java语言,所以装JDK是Android开发 ...
- 01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置
1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下 ...
- (SQL Server)有关T-SQL的10个好习惯
转自 http://www.cnblogs.com/CareySon/archive/2012/10/11/2719598.html 1.在生产环境中不要出现Select * 这一点我想大家已经是比较 ...
- quartz 时间设置(定时任务scheduler)
quartz用来设置定时任务的作业调度程序.在linux的crontab中用到. 格式为: * * * * * * * 其从左到右顺序代表 :[秒] [分] [小时] [日] [月] [周] [年] ...