Struts OGNL如果与action类的变量相关的语句不起作用,

时间:2012-02-24 14:32:29

标签: struts2 ognl

问题是: 在我的动作类中,我有一个变量:

 private String commentAdd = "yes";

动作类转到reslut.jsp,在reslut.jsp里面我有:

<s:set name="allowAddComment" value="commentAdd"/>
<s:if test="%{#allowAddComment=='yes'}">
                    <script type="text/javascript">
                        window.close();
                    </script>
</s:if>

但它不起作用,有些专家可以给我一些建议吗?感谢。

2 个答案:

答案 0 :(得分:1)

一些事情。

  • 该属性需要通过公共getter公开(或者作为公共成员在S2的更高版本中公开,但最好使用getter)。
  • 为什么要使用字符串作为布尔值?只需使用布尔值。
  • 为什么要将属性设置为其他变量?只需使用该物业。

确定这真的是你想要的吗?这会在渲染JavaScript时以很快关闭窗口。如果那没关系,那很好 - 虽然如果是这样的话,为什么还要费心渲染窗口呢?

答案 1 :(得分:0)

import com.opensymphony.xwork2.ActionSupport;

public class PageAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private boolean addComment;

public boolean isAddComment() {
    return addComment;
}

public void setAddComment(boolean addComment) {
    this.addComment = addComment;
}

public String execute() {
    return SUCCESS;
}

}

<s:if test="%{addComment}">
 <script type="text/javascript">
  window.close();
 </script>
</s:if>