2013-06-16 2 views
0

Я хочу знать, заполняем ли мы свойства класса действия, можем ли мы получить к ним доступ непосредственно в результате JSP без назначения их форме в классе действий?Свойства класса доступа Struts 2 непосредственно

+3

Пожалуйста, прочитайте документацию S2; SO не означает замену должной осмотрительности. Нет объектов формы, если вы не решите использовать их вручную или через ModelDriven. –

+0

, так что вы имеете в виду те свойства, которые я заполняю, могут напрямую обращаться в jsp, используя <%= name>, если класс действия имеет getName и setName? – Harshana

+1

№. Сценарии - это совершенно другой механизм, чем доступ к бинам через теги или EL. Сценарии также были наихудшей практикой уже почти десять лет. –

ответ

0

Я думаю, что вам нужно правильно определить метод получения боба. Скажем, если свойство называется id, и у вас есть метод под названием getId() в вашем действии. Тогда можно получить непосредственно в JSP, как:

OGNL выражение:

<s:property value="id"/> 

ИЛИ

JSTL выражение:

<c:out value="${action.id}"/> 
0

Struts2/XWork1 и его taglib ориентирован на буксир ds OGNL, который использует a valueStack для всех свойств действия. Эти значения не являются прямыми , доступными для языка выражений JSP2.0/JSTL1.1.

Для доступа к нему через OGNL вы можете использовать OGNL только в атрибутах тегов Struts. Например

public String MyAction extends ActionSupport { 
    private String myAttr; 
    //getter and setter here 
    ... 


<s:set var="myAttrz" value="myAttr" scope="request"/> 
${myAttrz} or ${myAttr} will just print out the value. 
<%=request.getAttribute("myAttrz")%> 

В первом теге атрибут действия доступен как выражение OGNL
Во второй строке в качестве выражения JSTL.
В третьей строке сценарии.

Ссылки:

+0

Свойства действия доступны в JSP EL из-за оболочки запроса. –

+0

@DaveNewton Вы правы, это тоже работает. –

Смежные вопросы