Миграция с Struts-1 на Struts-2 (<bean: write>, request.getAttribute ("attr1"), session.getAttribute ("attr2")) - PullRequest
0 голосов
/ 16 мая 2018

Допустим, пользовательский объект существует в любой из областей (PageContext, request, session, application)

чтобы получить пользовательский объект (из любой области видимости) в jsp, приведенный ниже код прекрасно работает в struts1.X

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

так что в стойках-2, как мне этого добиться, пожалуйста, предоставьте любое предложение

Помимо вышеупомянутого, есть ли способ достичь в стойках-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 я могу сделать код проще и чище, чем используя приведенные выше скрипты.

Так что же лучше в стойках-2 для вышеперечисленных вещей, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 16 мая 2018

Эквивалент <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. Основные вещи.

Что касается вашего второго, совершенно не связанного с этим вопроса, то этот вопрос не должен обрабатываться с помощью скриптлетов. Скриплеты - это запах кода. Не делай этого.

Вы захотите использовать тег <s:if >, который в документах также .

Вы найдете, что дела идут намного эффективнее, если вы сделаете шаг назад и просто изучите структуру, которую вы пытаетесь использовать.

...