首先,我们都知道,在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的取值与标签的更多相关文章

  1. struts2取值

    http://www.cnblogs.com/yangy608/archive/2010/11/23/1885256.html struts2取值 1.标签取值方式一 通过<s:property ...

  2. Jquery 关于span标签的取值赋值用法

    span是最简单的容器,可以当作一个形式标签,其取值赋值方法有别于一般的页面元素. //赋值 $("#spanid").html(value) //取值 $("#span ...

  3. jquery对strutrs2 <s:radio>标签的设置和取值

    今天郁闷了1小时. 需求是这样的: <s:radio  list="#{0:'男',1:'女'}" value="member.sex" id=" ...

  4. html常用标签的取值和赋值操作

    我们在html页面当中,面对各种各样的标签,经常需要处理取值和赋值的问题,下面,就把常见的一些html标签元素的取值和赋值操作进行总结整理,以后备用. 1.button:改变button按钮上面的值, ...

  5. 页面传递的都是string ; 每个标签要有name的原因是为了取值 因为传递给后台是键值对的形式

    页面传递的都是string ; 每个标签要有name的原因是为了取值  因为传递给后台是键值对的形式

  6. react 在IE9下input标签使用e.target.value取值失败

    在react项目开发中,input标签使用onChange方法获取输入值改变state: <input type="text" id="redeemNum" ...

  7. 对<tr><td>标签里的input 循环取值

    需求描述:单击table整行,跳转到具体的信息页面  关键就是获取整行的id,传给后台做查询,返回list 解决思路:用带参数函数传过去id,然后在js的函数中用$("#id"). ...

  8. struts2 页面标签或ognl表达式取值--未完待续

    一.加#号取值和不加#号取值的解说 1.s:property 标签——value属性使用事项 1)涉及问题:取值时什么时候该加#,什么时候不加? 2)介绍 <s:property value=& ...

  9. struts2标签#、%、$取值

    转自:https://blog.csdn.net/kosum/article/details/21375635 首先了解下OGNL的概念: OGNL是Object-Graph Navigation L ...

随机推荐

  1. Android系统对话框

    Android系统对话框 效果图 2个按钮的对话框 3个按钮的对话框 自定义View的对话框 单选对话框 多选对话框 列表框 Code XML <?xml version="1.0&q ...

  2. Objective-C 中如何测量代码的效率

    背景 在我们编程的时候,可能经常会有一些疑问: * 我们写的某个方法的执行效率是多少? * 方法 A 和 方法 B 哪个更快? 因此,我们不可避免的要用到一些方法来计算代码的执行效率.计算代码的执行效 ...

  3. 机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾

    作者:寒小阳 && 龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49797143 ht ...

  4. activiti实战系列 并行网关(parallelGateWay)

    流程图 13.2:部署流程定义+启动流程实例 13.3:查询我的个人任务 13.4:完成我的个人任务 说明: 1) 一个流程中流程实例只有1个,执行对象有多个 2)  并行网关的功能是基于进入和外出的 ...

  5. Android插件化的思考——仿QQ一键换肤,思考比实现更重要!

    Android插件化的思考--仿QQ一键换肤,思考比实现更重要! 今天群友希望写一个关于插件的Blog,思来想去,插件也不是很懂,只是用大致的思路看看能不能模拟一个,思路还是比较重要的,如果你有兴趣的 ...

  6. android ndk之hello world

    前言:Android NDK r7及以上的版本已经集成了Cygwin编译环境,也就是说,我们完全可以抛弃庞大的Cygwin了. r6及以下版本,也可以抛弃几个G的完整版,使用精简过的Mini-Cygw ...

  7. expect 简单使用

    简单的登陆脚本 这样就不用每次都输入ssh命令了,使用密码还是有些不安全,谨慎使用. #!/usr/bin/expect -f #filename: auto_login.sh #author: or ...

  8. Java并发框架——AQS超时机制

    AQS框架提供的另外一个优秀机制是锁获取超时的支持,当大量线程对某一锁竞争时可能导致某些线程在很长一段时间都获取不了锁,在某些场景下可能希望如果线程在一段时间内不能成功获取锁就取消对该锁的等待以提高性 ...

  9. android git上开源的项目收藏

    本文为那些不错的Android开源项目第一篇--个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...

  10. 给EditText的drawableRight属性的图片设置点击事件

    这个方法是通用的,不仅仅适用于EditText,也适用于TextView.AutoCompleteTextView等控件. Google官方API并没有给出一个直接的方法用来设置右边图片的点击事件,所 ...