2016-10-27 8 views
0

변수 lang이있는 cuntry.java이라는 모델이 있습니다. lang을 기반으로 JSP에서 라디오 버튼 옵션을 확인하고 싶습니다. 'EN'또는 'FR'이 될 수 있습니다. 내가 JSP 페이지에서 오류를 던지는 코드 아래에 썼을 때.모델 변수 + 스프링 폼 + JSP를 기반으로 한 라디오 버튼 확인

코드 :

<form:radiobutton path="lang" id="language" value="FR" name="radios" <c:if ${cuntry.lang == 'FR' ? 'checked="checked"' : '' } /> ></form:radiobutton> 

오류 : Unterminated &lt;form:radiobutton tag

답변

0

양식 태그에 오류가 여러 개 있습니다. Spring 태그를 사용하는 경우 idname 속성을 지정할 수 없습니다. 그들은 변수 path에서 자동으로 생성됩니다. 다른 태그 <form:radiobutton ... /> 안에있는 <c:if ... /> 태그는 허용되지 않습니다. 끝 태그도 제거하십시오. cuntry.lang의 값이 FR 경우 이것은 올바른 방법

<form:radiobutton path="lang" value="FR" checked="${cuntry.lang == 'FR' ? 'checked' : '' }" /> 

이다, (컴파일 한 후) 다음과 같은 HTML을 발생합니다 봄 태그

<input id="lang" name="lang" checked="checked" type="radio" value="FR" /> 

그렇지 않으면

<input id="lang" name="lang" type="radio" value="FR" /> 

당신이 만약 절대적으로 속성 id = languagename = radios이 필요하면 Spring 태그를 사용할 수 없습니다.

좋은 예가 here입니다.

0

<c:if> 태그는 태그가 아닌 속성에 사용할 수 있습니다. 결과적으로 html 구문이 유효하지 않게됩니다.

저는 꽤 오래 jsp를하지 않았습니다. 이해야 더 많거나 적은 작업 :

이에 대한 <c:if> 태그를 사용하여 주장하는 경우
<form:radiobutton checked="${cuntry.lang == 'FR' ? 'checked':''}" path="lang" id="language" value="FR" name="radios"> 
</form:radiobutton> 

, 당신은이 작업을 수행 할 수 있습니다 : 당신은이 문제를 해결하기 위해 <c:choose>,<c:when>,<c:otherwise> 태그를 사용할 수 있습니다

<c:if test="${cuntry.lang == 'FR'}"> 
    <form:radiobutton checked="checked" path="lang" id="language" value="FR" name="radios"> 
    </form:radiobutton> 
</c:if> 
<c:if test="${cuntry.lang != 'FR'}"> 
    <form:radiobutton path="lang" id="language" value="FR" name="radios"> 
    </form:radiobutton> 
</c:if> 

.

물론 첫 번째 해결 방법이 더 좋습니다.