В какой области я пишу код в Struts2 / Apache Tiles .jsp и как получить доступ к своему действующему действию Struts2? - PullRequest
0 голосов
/ 13 мая 2011

Итак, я пишу JSP-скрипт, который вызывается Apache Tiles, который вызывается действием Struts2.Все работает нормально, но мне просто интересно, к каким областям у меня есть доступ.

  1. Я (думаю, я) понимаю, что следующие области находятся в области JSP, в том смысле, что у меня естьдоступ к различным неявным объектам JSP :

    <% stuff in here (and variations of this type of tag) %>
    
    ${ stuff in here }
    
  2. И я знаю, что могу получить доступ к действию Struts2 с различными тегами Struts2 ,но у меня есть только «доступ к bean-компоненту»:

    <%@ taglib uri="/struts-tags" prefix="s" %>
    <s:property value="beanAccessorHere"/>
    
  3. И затем, я знаю только один способ доступа к реальному контексту действия (я думаю), но только в Struts2 ", если"tag:

    <s:if test="%{variableInMyAction == null}">
    </s:if>
    

Итак, мне было интересно, есть ли

  1. Был ли способ доступа к контексту Action, например # 3 * 1028?*, но более гибко, как в # 1 .
  2. Если я могу использовать синтаксис% {}, как в # 3 , но в любом месте, кроме тега Struts "if".

Спасибо за ваше время!

1 Ответ

1 голос
/ 15 июля 2011

Так что я думаю, что понял это.

Был способ получить доступ к контексту Action, например, # 3, но более гибким способом, как в # 1.

Я могу использовать <s:property value="%{now_in_action_context}"/> для доступа к переменным в своем действии и, фактически, могу использовать синтаксис %{} во многих различных тегах Struts.

Если я могу использовать синтаксис% {}, как в # 3, но в любом месте, кроме тега Struts "if".

(ответ выше)

Я также могу сделать что-то вроде использования <s:set name="myVar" value="%{somethingFromAction()}"/>, а затем, позже, получить доступ к myVar следующим образом: <s:property value="#myVar.thing"/> для вызова myVar.getThing() или даже <s:property value="%{#myVar.getThing()}"/>.

...