2014-09-09 1 views
3

내 JSP 페이지에는 봄 mvc 컨트롤러에서 오는 레이블이 있습니다. 하지만 그 레이블에 대해 다른 값을 표시하는 속성 파일을 사용하려고합니다. 다음은 내 JSP 코드입니다.jstl에서 변수 사용하기 <key : message key = "<% = customFieldData %>"/>

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

<fmt:bundle basename="main.resources.abc_messages"> 
       <% 
        if (request.getAttribute("customFields") != null) { 
         String line = request.getAttribute("customFields").toString(); 
         line = line.subSequence(1, line.length() - 1).toString(); 
         String[] data = splitLineIntoArray(line, ","); 
         for (int i = 0; i < data.length; i++) { 
          String field = data[i]; 
          String[] customFieldData = splitLineIntoArray(field, "="); 
       %> 
       <div class="row"> 
        <div class="left"> 
        <fmt:message key="<%=customFieldData[0]%>"/>  
        </div> 
        <div class="right"> 
         <input type="text" type="customField" 
          value="<%=customFieldData[1]%>" id="customField" 
          class="inputfixed" disabled="true" /> 
        </div> 
        <div class="clear"></div> 
       </div> 
       <% 
        } 
        } 
       %> 
</fmt:bundle> 

속성 파일 abc_messages.properties를 클래스 경로에 넣었습니다. 내가 key = "abc"를 사용할 때 속성 파일에 abc = xyz가 있으면 xyz 값을 얻습니다. 하지만 여기에 필요한 변수를 사용하여 내가 얻을 ???. 하지만 항상 출력으로이 무엇입니까는

??? color??? : green 
??? font ??? : arial 

abc_messages.properties이 문제는 내가 CustomFields 데이터로 얻고 있었다 여분의 공간이었다

color=Main Color 
font=Main Font 
+0

건물을 만들 때 maven을 사용하고 있는데, 이것이 src/main/resources'에 속성 파일이있는 이유입니까? – DanielBarbarian

+0

네, 메이븐 프로젝트예요. resources 폴더가 클래스 경로에 있습니다. 그러나 나는 또한 동일한 특성 파일을 루트 폴더에 넣고 로 변경하여 시도했다. 하지만 같은 출력을 내었습니다. – Pan

+0

실제로''설정이 효과가 있습니다. 파일 이름에 밑줄을 쓰지 않고 시도 했습니까? 또한'fmt : message' 태그의 속성을 하드 코딩하여 뭔가 잘못되었는지 확인하려고 했습니까? – DanielBarbarian

답변

0

파일. "color"는 내가 얻었던 문자열 이었지만 속성 파일에는 "color"가있었습니다. 그래서 그것은 줬다? 색깔 ??? . 열쇠를 넣기 전에 customFieldData를 trim()해야합니다.

관련 문제