首先,我们都知道,在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. Objective-C与Java类的一些区别

    Objective-C与Java类的一些区别 OC类和C一样,需要有声明和定义,先上一段OC代码 #import <Foundation/Foundation.h> /* * 声明一个Pe ...

  2. ROS(indigo) 用于机器人控制的图形化编程工具--code_it robot_blockly

    0 简介: 编程语言有汇编,高级语言,解释语言等,现在图形化编程也越来越流行.图形化编程简单易学.8年前,微软推出了VPL用于机器人程序设计,如Python和JavaScript都可以用图形化框图实现 ...

  3. PHP学习(3)—在HTML中嵌入PHP

    我们以一个提交订单和显示订单信息的例子为学习PHP的开始.这个例子包含两个文件.一个提交订单的html文件:orderform.html,一个显示订单信息的php文件:processorder.php ...

  4. Android使用shape制作圆形控件及添加弹跳动画

    --------本来为作者原创,未经同意禁止转载 前言:我们在很多时候都需要在res/drawable文件夹下创建相应的xml文件来为控件添加一些样式效果,比如按钮按下时的按钮样式变化.或者指定按钮的 ...

  5. Struts 2 之配置文件

    Struts 1使用ActionServlet作为分发器,而Struts 2使用Filter作为分发器.如果有多个Filter,要把Struts 2的分发器Filter放在最后 web.xml < ...

  6. Dynamics CRM 开启图表的3D效果展示

    CRM中的图表在我们的业务场景中用的很多,用户可以根据自己的实际需求来构建图表查看数据.我们平时看到的图表都是平面的,像下图中的这种,那有没有一种方式可以让展示3D效果看起来更立体呢,答案是可以的. ...

  7. Oracle 执行计划(Explain Plan) 说明

    如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题. 如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本可以 ...

  8. Linux 内存管理之highmem简介

    一.Linux内核地址空间 一般来说Linux 内核按照 3:1 的比率来划分虚拟内存(X86等):3 GB 的虚拟内存用于用户空间,1GB 的内存用于内核空间.当然有些体系结构如MIPS使用2:2 ...

  9. Android的AdapterView及其子类简介-android学习之旅(二十三)

    AdapterView简介 AdapterView组件是一类非常重要的组件,AdapterView本身是一根抽象基类,继承于ViewGroup,用法十分相似,只是显示形式不一样,因此同意讲解. Ada ...

  10. 1060. Are They Equal (25)

    题目如下: If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are consi ...