Struts OGNL, если оператор, связанный с переменной класса действия, не работает, - PullRequest
0 голосов
/ 24 февраля 2012

Проблема в том, что внутри моего класса действий у меня есть одна переменная:

 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 ]

1 голос
/ 24 февраля 2012

Несколько вещей.

  • Свойство должно быть выставлено через публичный получатель (или в более поздних версиях S2 как публичный член, но лучше использовать получатель).
  • Зачем использовать строку как логическое значение? Просто используйте логическое значение.
  • Зачем устанавливать свойство в другую переменную? Просто используйте собственность.

Вы уверены, это действительно то, что вы хотите? Это закроет окно как скоро , так как этот рендеринг JavaScript. Если это нормально, хорошо - хотя, если это так, зачем вообще рендерить окно?

0 голосов
/ 24 февраля 2012
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>
...