2013-06-16 8 views
0

액션 클래스 속성을 채우는 지 알고 싶습니다. 액션 클래스의 폼에 할당하지 않고 결과 JSP에서 직접 액세스 할 수 있습니까?Struts 2 액션 클래스 속성에 직접 액세스

+3

S2 설명서를 읽으십시오. SO는 실사를 대신하는 것이 아닙니다. 수동으로 또는 ModelDriven을 통해 양식 개체를 사용하기로 결정하지 않는 한 양식 개체가 없습니다. –

+0

그래서 내가 채우는 속성은 액션 클래스에 getName과 setName이 있다면 <%= name>을 사용하여 JSP로 직접 액세스 할 수 있습니다. – Harshana

+1

아니요. 스크립틀릿은 태그 나 EL을 통한 빈 액세스와 완전히 다른 메커니즘입니다. 스크립틀릿은 또한 거의 10 년 동안 최악의 사례였습니다. 덕분에 –

답변

0

bean getter 메소드를 올바르게 정의해야한다고 생각합니다. 예를 들어 속성의 이름이 id이고 작업에 getId()이라는 메서드가있는 경우

OGNL 표현 :

<s:property value="id"/> 

또는

JSTL 표현 :

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

Struts2/XWork1 그리고 그것은으로 JSP에 직접 액세스 할 수 그 taglib는 towar를 지향하고있다. ds OGNL은 모든 작업 속성에 , 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")%> 

대한 동작 특성 JSTL 식으로서 제 2 행에서 OGNL 식
으로 액세스된다.
세 번째 줄에는 스크립틀릿이 있습니다.

참고 :

+0

JSP EL에서는 요청 랩퍼로 인해 조치 특성을 사용할 수 있습니다. –

+0

@DaveNewton 네 말이 맞아, 그거 다. –

관련 문제