2017-03-23 5 views
1

에서 드롭 다운 목록을 채울 2.3.32로드 맵은 내가 이전 개발자에 의해 작성된 일부 웹 응용 프로그램을 유지해야하고 내가 최근 버전 2.1.6로 스트럿츠를 업그레이드 할 필요가 내 작품에서 struts2

이 업데이트는 내가 응용 프로그램에서해야했던 유일한 진정한 변화가 web.xm에

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 

에 이전

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 
</filter> 

을 변경하고, 대부분 잘 어울린다 L,하지만 지금 문제는 응용 프로그램에 의해 채워 모든 드롭 다운 목록은 단지 논문의 것과 같은 SAMES 예외와 함께 실패 할 것입니다 :

mars 23, 2017 8:14:03 AM org.apache.catalina.core.ApplicationDispatcher invoke 
GRAVE: "Servlet.service()" pour la servlet jsp a lancé une exception 
tag 'select', field 'list', name 'QUALITE': The requested list key 'liste_Qualite' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location] 
    at org.apache.struts2.components.Component.fieldError(Component.java:263) 
    at org.apache.struts2.components.Component.findValue(Component.java:356) 
    at org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:82) 
    at org.apache.struts2.components.Select.evaluateExtraParams(Select.java:105) 
    at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:893) 
    at org.apache.struts2.components.UIBean.end(UIBean.java:535) 
    at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) 
    ... 



mars 23, 2017 8:14:03 AM org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler error 
GRAVE: Exception occurred during processing request: tag 'select', field 'list', name 'QUALITE': The requested list key 'liste_Qualite' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location] 
org.apache.jasper.JasperException: tag 'select', field 'list', name 'QUALITE': The requested list key 'liste_Qualite' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location] 
    at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:538) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
    ... 



mars 23, 2017 8:14:03 AM org.apache.catalina.core.StandardWrapperValve invoke 
GRAVE: "Servlet.service()" pour la servlet default a généré une exception 
java.lang.IllegalStateException 
    at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407) 
    at org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler.sendErrorResponse(DefaultDispatcherErrorHandler.java:80) 
    at org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler.handleError(DefaultDispatcherErrorHandler.java:59) 
    at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:920) 
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:587) 
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) 
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) 
    ... 

이 마지막 예외는 나에게 문제가 웹에서 필터의 변화에서 오는 생각하게 .xml은 나머지 응용 프로그램이 수정되지 않았으므로. 그러나 검색 하루가 지나면 응용 프로그램을 다시 작동시키기 위해해야 ​​할 일을 찾을 수없는 것 같습니다.

맵이 초기화하고이 파일에 작성 설정됩니다

<package name="actions_ext" namespace="/gom_ext" extends="struts-default"> 
    <default-action-ref name="saisir_Om"></default-action-ref> 
    <action name="saisir_Om" class="beansActions.OrdreMissionAction_ext" method="init_om"> 
     <interceptor-ref name="StackForms"/> 
     <result name="success">/WEB-INF/gom_ext/saisir_Om.jsp</result> 
    </action> 
    ... 
</package> 

그리고 라인의 종류와 JSP에서 호출

public class OrdreMissionAction_ext extends ActionSupport { 
    ... 
    Map<String,String> liste_Qualite = new HashMap<String,String>(); 
    public Map<String,String> getliste_Qualite() { 
     return liste_Qualite; 
    } 
    ... 
    public String init_om() throws NamingException, IOException{ 
     liste_Qualite = new LinkedHashMap<String,String>();  
     liste_Qualite.put("IAT","Personnel IATSS"); 
     liste_Qualite.put("PSD","Personnel uB Postdoctorant"); 
     liste_Qualite.put("ENS","Personnel uB Ens/Chercheur"); 
     .... 
     return SUCCESS; 
    } 
    ... 
} 

struts.xml 그런 식으로 선언 :

<s:select label="Choisissez une qualité" headerKey="" headerValue="Choisissez une qualité" list="liste_Qualite" name="QUALITE" id="QUALITE" tabindex="3" onchange="Collab_ext(this.value)"/> 

무수히 많은 수의 exampl es 및 질문 여기에 질문이 논문에서 오류를 보지 못했지만 아직 그것을 해결하는 방법을 찾지 못했습니다. 무엇이 잘못되었는지에 대해 생각해 보셨습니까? 페이지가를 통해이라고


그래서 init_om() 함수가 호출 행동 http://example.com/gom_ext/saisir_Om의와지도 작성.

예외가 발생하기 전에 응용 프로그램이 브라우저로 전송되기 시작하고 선택 항목을 제거하면 페이지가 제대로 작동하지 않는 것 같습니다. 유일한 문제는 differents 목록을 검색하는 데 성공하지 못한 jsp 인 것 같습니다.

+0

될 수 있습니다 ;-) 도움 니스

getListe_Qualite 

에가 "getliste_Qualite"가 "getListe_Qualite"해야 변경합니다. –

+0

@ThrashBean 답변으로 만들 것을 제안합니다. 방금 시도했는데 이제는 완벽하게 작동합니다. 이전에 시도하지 않으려 고 조금 우울합니다. – Kane

답변

0

음, 그냥

getliste_Qualite 

당신이