에서 드롭 다운 목록을 채울 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 인 것 같습니다.
될 수 있습니다 ;-) 도움 니스
에가 "getliste_Qualite"가 "getListe_Qualite"해야 변경합니다. –@ThrashBean 답변으로 만들 것을 제안합니다. 방금 시도했는데 이제는 완벽하게 작동합니다. 이전에 시도하지 않으려 고 조금 우울합니다. – Kane