2011-01-20 1 views

답변

4

JSTL은 스크립틀릿에 정의 된 페이지 변수를 읽지 않습니다. 두 스타일은 서로 별개이며 잘 작동하지 않습니다. 대신

<% String fname = "abcd" %> 

당신이 뭔가를해야

<c:set var="fname" value="abcd"/> 

당신 해야 사용 스크립틀릿은, 당신은 JSTL이 그것을 읽을 수 있습니다 전에 페이지 문맥에 변수를 추가해야하는 경우 :

<% 
    pageContext.setAttribute("fname", "abcd"); 
%> 
+0

실제로 세션에서 fname을 가져와야합니다. String lname = (String) request.getSession(). getAttribute ((EnterpriseConstants.USER_LAST_NAME)); – RMa

0

실제로 나는 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으로 먼저 가져야 만했다. 이제는 효과가 있습니다. 다른 어떤 방법으로 ??