Как написать jstl вместо скриптлетов? - PullRequest
3 голосов
/ 28 апреля 2011
<%
    UserDetailsVO objUserDetailsVO = null;
   ArrayList arlUserDetailsVO = (ArrayList)request.getAttribute("LSTUSERSDETAILS");
   String nonBifFlag = "";
   if(arlUserDetailsVO !=null){
   Iterator it = arlUserDetailsVO.iterator();
   String urlProfile="";
   while(it.hasNext()){
       objUserDetailsVO = (UserDetailsVO)it.next();
        urlProfile = "UserProfile.htm?userID="+objUserDetailsVO.getLogin_Ident()+"&internalID=111"+objUserDetailsVO.getInternalId();

 %>

Ответы [ 2 ]

3 голосов
/ 28 апреля 2011

Убедитесь, что jstl.jar и standard.jar из JSTL находятся в вашем classpath (то есть в папке WEB-INF/lib вашего веб-проекта).В верхней части страницы JSP вам понадобится:

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

Дословный перевод вашего кода будет выглядеть так:

<c:set var="objUserDetailsVO" value="${null}"/>
<c:set var="arlUserDetailsVO" value="${requestScope['LSTUSERSDETAILS']}"/>
<c:set var="nonBifFlag" value=""/>
<c:if test="${not empty arlUserDetailsVO}">
    <c:set var="urlProfile" value="${null}"/>
    <c:forEach var="objUserDetailsVO" items="${arlUserDetailsVO}">
        <c:url var="urlProfile" value="UserProfile.htm">
            <c:param name="userID" value="${objUserDetailsVO.login_Ident}"/>
            <c:param name="internalID" value="111${objUserDetailsVO.internalId}"/>
        </c:url>
    </c:forEach>
</c:if>

Хотя, учитывая, что вам на самом деле это не нужночтобы установить атрибуты страницы / запроса на null, поскольку они уже null, вы, вероятно, можете сократить его до следующего значения:

<c:set var="arlUserDetailsVO" value="${requestScope['LSTUSERSDETAILS']}"/>
<c:if test="${not empty arlUserDetailsVO}">
    <c:forEach var="objUserDetailsVO" items="${arlUserDetailsVO}">
        <c:url var="urlProfile" value="UserProfile.htm">
            <c:param name="userID" value="${objUserDetailsVO.login_Ident}"/>
            <c:param name="internalID" value="111${objUserDetailsVO.internalId}"/>
        </c:url>
    </c:forEach>
</c:if>

Обратите внимание, что при использовании <c:url> для создания вашего URL, ваш URLпараметры теперь будут правильно кодироваться, поскольку они не кодируются в вашем фрагменте кода Java.

1 голос
/ 28 апреля 2011

Попробуйте основные теги, а также привязки для запроса и т. Д., Например, <c:forEach>, <c:out>, <c:if> ...

Вот краткий учебник (или, если вы можете читать по-немецки: учебник / справочник по немецкому ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...