目前我有一个servlet CsmServlet.java
,它被客户端调用,这里是web.xml
部分
<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>
我会重复我的问题,
我的 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;
}
答案 0 :(得分:2)
由于Struts实现了MVC架构,理想情况下,您不希望让servlet执行控制部分。您可能希望将servlet中的逻辑复制到Struts操作。 通常,您有两种选择:
希望这有帮助。
答案 1 :(得分:1)
Struts有一个前端控制器servlet,它接受所有请求并将它们传递给完成工作的Action类。
我认为你的servlet失业了。
听起来它应该是前端控制器在客户要求时调用的Action类。