目前,我有一個servlet CsmServlet.java
這是越來越被客戶端調用,這裏是web.xml
部分從普通的Java遷移到Struts2的
<servlet>
<display-name>upload</display-name>
<servlet-name>upload</servlet-name>
<servlet-class>com.abc.csm.web.CsmServlet</servlet-class>
</servlet>
這是完美的。現在我必須使用struts 2並重新計算我的所有代碼,所以我應該在我的struts.xml
中使用什麼來調用CsmServlet
類。
這裏是我的struts.xml的,現在我想提出一個重定向到另一個頁面
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="showResult">
<result>/csminfo.jsp</result>
</action>
</package>
</struts>
我會重複我的問題,
- 我該添加什麼到我的支柱。 xml向CsmServlet類發出請求
- 我需要對web.inf進行任何更改嗎?
我的Servlet內容
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;
}
感謝您的回覆,我已經上傳了我的servlet內容,能否向我解釋我需要做什麼w.r.t我的servlet代碼? – abi1964 2011-06-13 10:02:47
你的servlet似乎在做業務邏輯和渲染。如上所述,你有兩個選擇。選項2非常簡單,但不是從struts向servlet轉發請求的最佳選擇。 – 2011-06-13 10:09:25