最近我在改造系统时,要把原来的webwork框架的东西改成struts框架的东西,webwork和struts都是搭建好的,只是把原来的系统改成新系统能用.
其中有些异同略做整理!这里主要列的是表现层和控制层的异同,以及model的不同
1、webwork表现层用freemark标签的 .ftl文件,而struts表现层用 .jsp文件及struts标签,里面的html代码和JS基本一致,但两者里面嵌入的标签、变量名和java代码不同,如 .ftl文件代码,变量:value="http://www.blog.com.cn/${xxxxModel.inputdate}",
.jsp中的变量值value="<%=(String)show_c1801%>
和.ftl文件标签:<#list orgPropertyList as codeItem>
<option value="http://www.blog.com.cn/${codeItem.value}">${codeItem.label}</option>
</#list>
而 .jsp文件中嵌入的代码:<%
String scheme = request.getScheme(); // http
String serverName = request.getServerName(); // hostname.com
int serverPort = request.getServerPort(); // 80
String contextPath = request.getContextPath(); // mywebapp
String url = scheme+"://"+serverName+":"+serverPort+contextPath+"/";
%>在 .ftl文件中这段代码就执行不了.
2、action的取值不同,在webwork中的action可以很轻松的继承框架把表示层的值带过来,但要用原来的.ftl文件用struts框架时,改造action时要新建form和setsetAttribute form中的对象,如代码:
JgqkModel jgqkModel =(JgqkModel)form;
request.setAttribute("jgqkModel",jgqkModel);
request.setAttribute("countlist",countList);
当然继承的对象和扭转不同自不必说,代码如下:
public ActionForward xxxxShow(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
..................................
return mapping.findForward("jgxz");
}
3、model的不同,Struts框架中比webwork框架多继承了一个ActionForm,如代码:
public class CodeModel extends ActionForm implements Serializable {
}
4、webwork框架配置文件在Struts框架移植到配置文件中改动不大.