작동하지 않습니다 , fname은 값을가집니다. 왜 어떤 생각?<c:if> 문은 내가 다음과 같이 JSP에서 그에게 문이 제대로
답변
JSTL은 스크립틀릿에 정의 된 페이지 변수를 읽지 않습니다. 두 스타일은 서로 별개이며 잘 작동하지 않습니다. 대신
<% String fname = "abcd" %>
의
당신이 뭔가를해야
<c:set var="fname" value="abcd"/>
당신 해야 사용 스크립틀릿은, 당신은 JSTL이 그것을 읽을 수 있습니다 전에 페이지 문맥에 변수를 추가해야하는 경우 :
<%
pageContext.setAttribute("fname", "abcd");
%>
실제로 세션에서 fname을 가져와야합니다. String lname = (String) request.getSession(). getAttribute ((EnterpriseConstants.USER_LAST_NAME)); – RMa
실제로 나는 fname을 가져올 필요가 있습니다. 세션. 내가 this-
<% 문자열에 fname처럼하고 있어요
= (문자열) request.getSession()의 getAttribute ((EnterpriseConstants.USER_FIRST_NAME)). %>
<c:set var = "fname" value = "<%=request.getSession().getAttribute ((EnterpriseConstants.USER_FIRST_NAME))%>";/>
난에 표시 할 필요가있는 FNAME 그 페이지. 내가 첫 번째 이름을 null 또는 세션에서 가져온 공백 인 경우 사용자가 입력하거나 보호됩니다. 그래서 페이지를 표시하기 전에 확인해야합니다.
<c:if test="${not empty fname}">
<html:text name="form1" property="firstName" styleClass="formContent" value="<%=fname.toUpperCase()%>" style = "background:#C8C8C8" readonly="true" maxlength="15" size="10"/>
</c:if>
<c:if test="${empty fname}">
<html:text name="form1" property="firstName"
styleClass="formContent" maxlength="15" size="10"/>
</c:if>
질문 - 1) 내가 할 다음에 fname이 문자열로 얻을 필요합니까? 방금 var = "fname"을 수행하면이 변수를 명령문에서 사용하려고하면 오류가 발생합니다. 그래서 나는 fname을 String fname으로 먼저 가져야 만했다. 이제는 효과가 있습니다. 다른 어떤 방법으로 ??
skaffman의 답변 외에도'<% out.println() %> '대신''을 사용하십시오. 예 : '비어 있지 않은 '그리고'empty '. 사용자가 제어하는 데이터가 없으면'$ {fname} '으로 바꿀 수도 있습니다. –
BalusC