从struts-1迁移到struts-2(<bean:write>,request.getAttribute(“attr1”),session.getAttribute(“attr2”))

时间:2018-05-16 07:03:18

标签: struts2 struts

让我们在任何一个范围(PageContext,request,session,application)中都存在用户对象

所以要在jsp中获取用户对象(来自任何一个作用域),下面的代码在struts1.X中工作得非常好

**<bean:write name="user" property="someProperty"/>**

所以在struts-2中如何实现这一点,请提供任何建议

除上述之外,是否有一种方法可以在struts-2中实现JSP中的以下代码

    <%
    User user = (User)session.getAttribute("user");
    if(null != user){%>
    // some html code
    <%}%> 

    <%
    if(null != user.getSomeProperty() && "".equals(user.getSomeProperty())){%>
    //some html code
    <%}%>

<%
    if(null != user.getSomeProperty() && "prop1".equals(user.getSomeProperty())){%>
    //some html code
    <%}%>

我相信通过使用struts-2标签,我可以使代码更简单,更清晰,而不是使用上面的文章。

所以对于上述事情最好的struts-2,请帮帮我

1 个答案:

答案 0 :(得分:1)

<bean:write name="user" property="someProperty" />的等价物是:

${user.someProperty}

如果JSP EL不是你的话:

<s:property value="user.someProperty" />

或更明确的OGNL:

<s:property value="%{user.someProperty}" />

所有这些都包含在S2文档中;我强烈建议花点时间阅读文档和教程,因为这是Struts 2 101.基本的东西。

至于你的第二个完全不相关的问题,这应该通过scriptlet处理 not 。 Scriptlet是一种代码气味。不要那样做。

您需要在文档中使用<s:if >标记

如果你退后一步,只是学习你想要使用的框架,你会发现事情变得更有效率。