`

struts2 标签的使用之一 s:if

    博客分类:
  • JAVA
 
阅读更多

struts2 的web 项目中为了方便的编写jsp,标签是最好的选择

1:struts2 标签库的定义在**-core-版本号.jar META-INF 路径下找到struts-tags.tld文件;使用该标签需要在web 项目里面导入标签库:
    A:在web.xml文件  (默认 可以省略)

  1. <taglib>
  2.     <taglib-uri>/struts-tags</taglib-uri>
  3.     <taglib-location>/WEB-INF/lib/*.jar</taglib-location>
  4. <taglib>

    B:在jsp 导入标签的dingyi

  1. <%@ taglib prefix="s" uri="/struts-tags"%>

注意uri要一直,上面定义的是默认写法
 
2:OGNL struts2 利用了内建的ognl表达式,它基于XWork,增加了对ValueStack的支持
,在jsp里面通过ognl访问属性,struts2会自动搜寻栈内的所有实体。直到找到位置。
如:#person.address.ip 等于 person.getAddress().getIp();翻译结果为条用get方法
或是jstl的${person.address.ip}

<s:if>用法
A:直接写表达式

  1. <s:set name='china' value='china'>
  2. <s:if test="${china=='china'}">show</s:if>
  3. result:  show
  4. <s:set name="count" value="99">
  5. <s:if test="${count>0}">bigger than 0</s:if>
  6. <s:else>not</s:else>
  7. result:  bigger than 0

B:在遍历里面使用判断:

  1. <s:iterator id="id" value="label">
  2.     <s:if test="%{#id.attrValueId!=0}">
  3.         <s:property value="#id.attrValue" />
  4.                 <s:property value="#id.countAll" />                 <s:property value="#id.countRequest" /> 
  5.     </s:if>
  6.     <s:else>
  7.         <s:property value="#id.attrValue" />
  8.     </s:else>
  9. </s:iterator>

label是一个List<Attribu>  Attribu 包含属性attrValueId和countAll
s:iterator域内这是id的值是"id",使用ognl读取遍历对象的方法是 #id
test="%{#id.attrValueId!=0}" 看子对象的属性attrValueId是否为0
<s:property value="#id.attrValue" /> 打印子对象的attrValue属性

C:直接读取对象

  1. <s:if test="request.price==null||request.price<=0">
  2. </s:if>

读取对象request,判断price是否小于0;
request 可以是如何的javaBean,也可以是基本属性

D:直接读取对象的另一种写法

  1.  <s:if test="%{aTransactionSummaryBean!=null}">

E:多个条件的判断

  1. <s:if test='%{isShowAll=="Y"||isShowAll==null||isShowAll==""}'>
  2.     <li class="selected">
  3. </s:if>
  4. <s:else>
  5.     <li>else
  6. </s:else>

isShowAll 为Action 里面的字符串属性

F:直接拿Action里面的boolean 貌似不xing
Action里面

  1. private boolean choosed = true;
  2. public boolean isChoosed(){
  3.     return choosed;
  4. }
  5. <s:if test="choosed"></s:if>

发现这个判断无法正确运行,也许是ognl 是通过get方法来获取对象的,如果在action 里面有下面的方法;

  1. public String getChoosed(){
  2.     return "true";
  3. }

上面那个s:if可以正确执行 
最后注意一点:ognl和jstl标签不能互相嵌套

 

分享到:
评论

相关推荐

    struts2 <s:if>标签使用

    struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用

    Struts2标签 s:if test 判断String类型的对象属性值和单字符是否相等的问题

    &lt;s:if&gt; 在进行字符创和字符比较时,会忽略一些细节,对于对该控件不是经常使用的,需要注意与字符和字符串的比较的区别

    Struts2标签库

    &lt;%@ taglib uri="/struts-tags" prefix="s" %&gt; 结合例子,重点掌握以下标签的用法 (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7...

    struts2 标签库 帮助文档

    &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-----超链接,类似于html里的&lt;a&gt;&lt;/a&gt; 3. &lt;s:...

    struts2的标签库

    这是一份关于struts2标签库的文档。 &lt;%@ taglib prefix="s" uri="/struts-tags"%&gt; struts2的标签共分为五大类: 一、逻辑控制标签 用于进行逻辑控制输出。主要分以下几类: 1)条件标签:用于执行基本的条件流转 &lt;s...

    Struts2标签库的所有

    &lt;%@ taglib uri="/struts-tags" prefix="s" %&gt; 结合例子,重点掌握以下标签的用法 (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7...

    Struts2通用标签用法示例

    主要介绍Strus2中的通用标签,主要有&lt;s:url&gt;, &lt;s:set&gt;, &lt;s:push&gt;, &lt;s:if&gt;, &lt;s:elseif&gt;, &lt;s:else&gt;, &lt;s:iterator&gt;, &lt;s:sort&gt;, &lt;s:date&gt;, &lt;s:a&gt;等几个标签的具体用法,希望能对大家有帮助。

    struts2讲义_吴峻申

    5.1 Struts2标签使用原理解疑 73 5.2 OGNL表达式语言介绍 75 5.3 Struts2控制标签简介 79 5.3.1 append标签使用介绍 79 5.3.2 generator标签使用介绍 80 5.3.3 if、else、elseif标签使用介绍 81 5.3.4 iterator标签...

    Struts2 in action中文版

    第一部分 Strut 2:一个全新的框架 第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 ...

    Struts标签

    Struts的一些标签,如checkboxlist、s:if---s:else等

    jsp自定义标签

    jsp自定义标签,比如说if,foreach,out,format

    AnyFo - Struts 2_1爆胎易筋丸.pdf

    2 Action 研究.........................................................................................................................8 2.1 访问Servlet API................................................

    freemarker总结

    其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替&gt;会有更好的效果,因为 FreeMarker会把&gt;解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:&lt;#if (x&gt;y)&gt; ...

    java面试题

    答:多形:一个类中多个同名方法。继承:子类继承父类。 jsp内置对象? 答:request 用户端请求 response 回应 pageContext 网页属性 session 会话 out 输出 page 当前网页 exception 错误网页 application ...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架。 2、 Ajax...

    超级有影响力霸气的Java面试题大全文档

    Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应...

    java 面试题 总结

    Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应...

Global site tag (gtag.js) - Google Analytics