日期:2014-05-18  浏览次数:20735 次

关于Struts2标记库中<s:if 访问页面变量
关于Struts2标签库中<s:if 访问页面变量 如下

一个JSP页面代码,先用一个%符定义了一个变量,想用标签库来访问
========================================
<%! int rown = 2; %>
  <s:if test="rown==1">
  <h1>rown的值为1</h1>
  </s:if> 
  <s:elseif test="rown==2">
  <h1>rown的值为2</h1>
  </s:elseif>

但上面实际上访问不成功,怎么实现呢? HELP。。。

------解决方案--------------------
这个变量用对象的属性是可以取到值的
你可以用request.setAttribute()来看看能不能取到值
------解决方案--------------------
<s:set/>标签
------解决方案--------------------
要比较的值必须放在作用域里,page,request,session...
------解决方案--------------------
探讨
我在网上查了,说这个可以,我也用了
<s:set name="pagrown" value="rown" scope="page"> </s:set>

<s:if test="#pagrown==1">
<h1>rown的值为1 </h1>
</s:if>
<s:elseif test="#pagrown==2">
<h1>rown的值为2 </h1>
</s:elseif>

但测试没有成功,条件返回FALSE;麻烦帮我看看是不是哪写错了?

------解决方案--------------------
用标签就全用标签 
HTML code
  <s:set  var="wown"  value="1" >
    <s:if test="rown=1"> 
        <h1>rown的值为1 </h1> 
    </s:if> 
    <s:elseif test="rown==2"> 
        <h1>rown的值为2 </h1> 
    </s:elseif>

------解决方案--------------------
用<s:set/>标签,不写scope的话,它可以将值写到ognl中的Stack Context
HTML code
  
<s:set  var="rown"  value="1" >
    <s:if test="#rown==1">
        <h1>rown的值为1 </h1>
    </s:if>
    <s:elseif test="#rown==2">
        <h1>rown的值为2 </h1>
    </s:elseif>

------解决方案--------------------
Java code

    <s:set  name="pagrown" var="rown"  value="2"></s:set>
    <s:if test="#rown==1">
        <h1>rown的值为1 </h1>
    </s:if>
    <s:elseif test="#rown==2">
        <h1>rown的值为2 </h1>
    </s:elseif>

------解决方案--------------------
楼上的各位set 那有var属性啊。我晕
JScript code

<s:set name="rown" value="2"  ></s:set>

<s:if test="#rown==1">rown的值为1</s:if>
<s:elseif test="#rown==2">rown的值为2</s:elseif>