2014-05-14 4 views
-1

나는 Action 클래스에서 Map 클래스를 prepare 메서드로 정의 했으므로 JSP Scriptlet에서이 Map 변수를 반복하여 키와 값을 가져와야합니다. 하지만 JSP에서이 Map Variable을 얻으 려합니다. JSP에서 Map 객체를 직접 가져올 수있는 방법이 있습니까? 즉, Action Class에서 JSP Scriptlet으로?JSP에서 Java Map 변수에 액세스하는 방법

for(Map.Entry<String, String> map : securityMenu.entrySet()){ 
    out.println("eLK('e1d1L1','i','"+map.getValue()+"','"+map.getKey()+"');"); 
} 

이 어떤 도움이 날

+0

내가 스크립틀릿 (나쁜 관행)를 사용하지 않을 :

여기에 기본적인 예입니다. 나는 ''과 다른 struts2 태그를 사용할 것입니다. getter가 있거나 세션에있는 경우 액세스 권한이 있어야합니다. – tom

+0

'<℅℅>' – URL87

+0

응답을 위해 고맙습니다 ... 실제로 CSS를 사용하여 메뉴 항목을 채우고 있습니다. 그래서 Scriptlet을 사용하고 있습니다. JSP Scriptlet에서이 세션 변수를 얻고 JSP Scriptlet에서 변수에 할당하는 방법 ?? – Shubhankar

답변

1

먼저 확인을 위해 큰 도움이 될 것입니다 :

@Override 
public void prepare() throws Exception { 
securityMenu = new HashMap<String,String>(); 
securityMenu.put("userGroupMaster","Group Master"); 
securityMenu.put("userProfileMaster","Profile Master"); 
securityMenu.put("userTypeMaster","User Type Master"); 
} 

내가 원하는 JSP 스크립틀릿처럼이 securityMenu : 아래

내 준비 방법 getSecurityMenu() 방법이 있습니다.

다음으로 수이는 JSP에서 :

<s:iterator value="securityMenu"> 
    <s:property name="key"/> 
    <s:property name="value"/> 
</s:iterator> 

맵 이름 securityMenu에서 세션에있는 경우 다음과 같이 할 수있는 :

<s:iterator value="#session.securityMenu"> 
    <s:property name="key"/> 
    <s:property name="value"/> 
</s:iterator> 

편집 :이를 위해 을에 귀하의 페이지가 다음 Struts2 taglib을 선언해야합니다 :

<%@ taglib prefix="s" uri="/struts-tags"%> 
+0

고맙습니다. 응답 ... 실제로 CSS를 사용하여 메뉴 항목을 채우고 있습니다. 그래서 Scriptlet을 사용하고 있습니다. JSP Scriptlet에서이 세션 변수를 얻고 JSP Scriptlet에서 변수에 할당하는 방법 ?? - – Shubhankar

+0

@Shubhankar CSS로 무엇이든 팝업 할 수는 없습니다. 어쩌면 자바 스크립트로 메뉴를 채우는 것이고, Scriptlets (나쁜) 또는 Struts Tags (최고) 또는 JSTL (좋은)으로 할 수 있습니다. 그러나 결국 JSP 로딩 중에 자바 스크립트로 메뉴 항목을로드하는 경우 자바 스크립트를 사용할 필요가 없습니다. 반복기 내부에서 직접 Struts 태그로 HTML을 생성하면됩니다. 당신은 적어도 두 가지 다른 방법으로 간단한 일을 지나치게 복잡하게 만듭니다 ... –

+0

예 JavaScript를 사용하여 메뉴를 채우는 중입니다. 그렇게 할 수있는 struts2 예제를 제공 할 수 있습니까 ?? – Shubhankar

0

스크립틀릿에서 일반적인 javacode처럼 할 수 있습니다.

for (Map.Entry<String, String> entry : securityMenu.entrySet()) { 
    String key = entry.getKey(); 
    String value = entry.getValue(); 
} 

그러나, 스크립 (JSP 파일의 원시 자바 코드, 그 <% %> 일이) 가난한 연습으로 간주됩니다. JSTL을 설치하는 것이 좋습니다 (JAR 파일을 /WEB-INF/lib에 놓고 JSP 맨 위에 필요한 taglibs-3을 선언하십시오). 그것은 다른 사람 사이에 반복 수있는 태그가 Map이야. 반복 할 때마다 getKey()getValue() 방법을 사용하는 Map.Entry 뒷면이 나타납니다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<c:forEach items="${securityMenu}" var="entry"> 
    Key = ${entry.key}, value = ${entry.value}<br> 
</c:forEach> 
+0

솔루션 얻으십시오 securityMenu를 세션 및 JSP에서 설정했습니다. Map arrayMenuSecurity = (Map ) request.getSession(). getAttribute ("securityMenu"); – Shubhankar

관련 문제