2016-07-11 1 views
1

java 1.6, struts 및 jstl-1.2.jar을 사용하고 jstl 핵심 태그를 사용하여 jsp로 목록을 인쇄하려고합니다. 세션 범위 속성을 사용하면 (${sessionScope.myList}), 핵심 태그는 값이전달 후 요청 속성을 사용할 수 없습니다. 세션 속성 만 사용할 수 있습니다.

듣고는 web.xml을

<?xml version="1.0" encoding="ISO-8859-1"?> 

<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

     <!-- Standard Action Servlet Configuration (with debugging) --> 
     <servlet> 
     <servlet-name>action</servlet-name> 
     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
     <init-param> 
      <param-name>config</param-name> 
      <param-value>/WEB-INF/struts-config.xml</param-value> 
     </init-param> 
     <init-param> 
      <param-name>debug</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <init-param> 
      <param-name>detail</param-name> 
      <param-value>2</param-value> 
     </init-param> 
     <load-on-startup>2</load-on-startup> 
     </servlet> 

     <servlet> 
      <servlet-name>DownloadServlet</servlet-name> 
      <servlet-class>DownloadServlet</servlet-class> 
      <init-param> 
       <param-name>dir</param-name> 
       <param-value>/home/engneer/workspace/SLTTEN-MTN-V2/web/web_content/tenderdocs</param-value> 
      </init-param> 
     </servlet> 

      <servlet> 
      <servlet-name>dwr-invoker</servlet-name> 
      <display-name>DWR Servlet</display-name> 
      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
      <init-param> 
       <param-name>debug</param-name> 
       <param-value>true</param-value> 
      </init-param> 
     </servlet> 


     <servlet> 
      <servlet-name>ServletConfiguratorSLT</servlet-name> 
      <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class> 
      <init-param> 
      <param-name>propertyFile</param-name> 
      <param-value>WEB-INF/classes/resources/ProxoolSLT.properties</param-value> 
      </init-param> 
      <load-on-startup>1</load-on-startup> 
     </servlet> 

     <servlet> 
      <servlet-name>ServletConfiguratorCICOSE</servlet-name> 
      <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class> 
      <init-param> 
      <param-name>propertyFile</param-name> 
      <param-value>WEB-INF/classes/resources/ProxoolCICOS.properties</param-value> 
      </init-param> 
      <load-on-startup>1</load-on-startup> 
     </servlet> 

     <servlet> 
     <servlet-name>proxool</servlet-name> 
     <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class> 
     </servlet> 


     <servlet-mapping> 
      <servlet-name>DownloadServlet</servlet-name> 
      <url-pattern>/servlet/DownloadServlet</url-pattern> 
     </servlet-mapping> 


     <!-- Standard Action Servlet Mapping --> 
     <servlet-mapping> 
     <servlet-name>action</servlet-name> 
     <url-pattern>*.do</url-pattern> 
     </servlet-mapping> 

     <servlet-mapping> 
      <servlet-name>dwr-invoker</servlet-name> 
      <url-pattern>/dwr/*</url-pattern> 
     </servlet-mapping> 

     <servlet-mapping> 
     <servlet-name>proxool</servlet-name> 
     <url-pattern>/servlet/admin</url-pattern> 
     </servlet-mapping> 


     <!-- Session time out --> 
     <session-config> 
     <session-timeout>120</session-timeout> 
     </session-config> 


     <!-- The Usual Welcome File List --> 
     <welcome-file-list> 
     <welcome-file>public_dashboard.jsp</welcome-file> 
     <welcome-file>login.jsp</welcome-file> 
     </welcome-file-list> 


     <!-- Error page specification --> 
     <error-page> 
     <error-code>500</error-code> 
     <location>/errors/500.htm</location> 
     </error-page> 

     <error-page> 
     <error-code>404</error-code> 
     <location>/errors/404.htm</location> 
     </error-page> 


     <!-- Struts Tag Library Descriptors --> 
     <taglib> 
     <taglib-uri>/tags/struts-bean</taglib-uri> 
     <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> 
     </taglib> 

     <taglib> 
     <taglib-uri>/tags/struts-html</taglib-uri> 
     <taglib-location>/WEB-INF/struts-html.tld</taglib-location> 
     </taglib> 

     <taglib> 
     <taglib-uri>/tags/struts-logic</taglib-uri> 
     <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> 
     </taglib> 

     <taglib> 
     <taglib-uri>/tags/struts-nested</taglib-uri> 
     <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> 
     </taglib> 

     <taglib> 
     <taglib-uri>/tags/struts-tiles</taglib-uri> 
     <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> 
     </taglib> 

    </web-app> 
에게

ActViewTender.java

입니다 핵심 태그에 의해 촬영되지 않도록, ( ${requestScope.myList})을 제대로 값을 얻을하지만 난 요청을 사용할 때 범위 속성
public class ActViewTender 
    extends Action { 
    static Logger logger = Logger.getLogger(ActViewTender.class); 

    public ActionForward execute(ActionMapping mapping, 
           ActionForm form, 
           HttpServletRequest request, 
           HttpServletResponse response) throws Exception { 

    String realPath = getServlet().getServletContext().getRealPath("/WEB-INF/log4jConfiguration.xml"); 
    DOMConfigurator.configure(realPath); 

    try { 

     ReverseAuctionTender reverseAuctionTender = new ReverseAuctionTender(); 
     ISupplier supplier = new Supplier(); 

     List<TenderEnt> tendeList = reverseAuctionTender.ViewReverseAuctionTender(conn, strSupID); 

     List<TenderEnt> ReverseAuctionTenderList = new ArrayList<TenderEnt>(); 

     List<String> watchList = supplier.getAddtoWatchListTender(conn, strSupID); 


     try { 
      for (TenderEnt tenderEnt : tendeList) { 
       String isWatched = ""; 
       for (String wl : watchList) { 
        if (wl.equals(tenderEnt.getTenderNo().trim())) { 
         isWatched = "watched"; 
        } 
       } 

       tenderEnt.setIsWatched(isWatched); 
       ReverseAuctionTenderList.add(tenderEnt); 

       } 

      request.setAttribute("myList", ReverseAuctionTenderList); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
      logger.fatal(e.getMessage()); 
     } 

     forward = mapping.findForward("SupplierMain"); 
     } 
    return forward; 
    } 
} 
,451,515,

듣고는 JSP 코드

내가 ( request.getSession().setAttribute("myList", ReverseAuctionTenderList);<c:forEach items="${sessionScope.myList}" var="tender">와) 서블릿에서 세션 변수로 설정했을 때이 같은 목록만을 얻을 결과로
<c:forEach items="${requestScope.myList}" var="tender"> 
    <div class="small-12 tender auction-type online-tenders"> 
     <div class="small-12 tender-number"><c:out value="${tender.tenderNo}"></c:out></div> 
     <div class="small-12 tender-detail"> 
      <div class="small-12 medium-7 large-9 columns collapse tender-title"> 
         <h4>${tender.description}</h4> 
      </div> 
     </div> 
    </div> 
</c:forEach> 

그것 때문이다

+0

이것은 스트럿츠 매핑 Kani

답변

0

좋은 일이야입니다 struts 매핑 파일에서 redirect = "true"를 반환합니다. redirect = true 일 때 요청에 저장된 데이터는 전달 중에 지워집니다.

이 부분이 도움이됩니다.

관련 문제