은 현재 내가 클라이언트 측에 의해 호출지고 서블릿 CsmServlet.java
이 struts2하기 위해, 여기에 web.xml
부분을 완벽일반 자바에서 마이그레이션하는
<servlet>
<display-name>upload</display-name>
<servlet-name>upload</servlet-name>
<servlet-class>com.abc.csm.web.CsmServlet</servlet-class>
</servlet>
입니다. 이제 스트럿츠 2를 사용하고 모든 코드를 다시 고려해야하므로 struts.xml
에서 CsmServlet
클래스로 호출해야합니다. 여기
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="showResult">
<result>/csminfo.jsp</result>
</action>
</package>
</struts>
내 질문을 반복 할 것이다,
- 내가 내 스트럿에 무엇을 추가하여야한다 다른 페이지로 리디렉션을하고, 내 struts.xml입니다. xml을 사용하여 CsmServlet 클래스에 요청하십시오.
- web.inf를 변경해야합니까?
내 서블릿 내용
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
Map<String, String> requestParamter=getParamMap(req.getParameterMap());
RequestTransformer transformer = new RequestTransformer(req);
//(map and operation type) goes to CSMData
CSMData data = transformer.transform(requestParamter);
RequestHandler handler = new RequestHandler(req);
String result = handler.handle(data);
log.info(result);
out.println(result);
}
private Map<String,String> getParamMap(Map<String,String[]> params)
{
Map<String,String> paramsMap = new HashMap<String, String>();
for(Map.Entry<String,String[]> entry : params.entrySet())
{
paramsMap.put(entry.getKey(),entry.getValue()[0]);
}
return paramsMap;
}
답장을 보내 주셔서 감사합니다. 내 서블릿 콘텐츠를 업로드했습니다. 내 서블릿 코드를 어떻게 처리해야하는지 설명해 주시겠습니까? – abi1964
서블릿이 렌더링과 비즈니스 로직을 수행하고있는 것처럼 보입니다. 앞서 언급했듯이 두 가지 옵션이 있습니다. 옵션 2는 매우 간단하지만 struts에서 서블릿으로 요청을 전달하는 곳에서 최상은 아닙니다. –