1StrutsWebworkStruts2比较
 
JAVA EE中作为MVC的优秀框架有很多,例如:常见的有:StrutsWebWorkTapestryJSF等,在这些优秀的框架之中,个人比较习惯使的还是:StrutsWebWork,对于JSF使的不多,虽然SUN公司主推JSF,但观察其身边的搞开发的朋友,使用此技术的确实是少之又少,Tapestry也是apache公司推出的,但个人认为是极其难使的,而且版本之间的差别较大,文档也不是很多,使用较费劲,而对于Struts而言,相信不少人都清楚,毕竟Struts已经成功的成为了MVC框架的一个标准,如果不去搞Struts,那么连入这个行业都很难。WebWork作为XWork的一个新的发展物,在JIVE论坛上取得了巨大的成功,拌着时间的发展,WebWork使用会越来越多,发展潜力较大。
1.1
Struts
 Struts
的推出时间,在网上查了查确实没有查到,在我印象中应该是03年接触到Struts概念的,一开始只是在使用简单的MVC进行开发,Struts刚出现的时候确实比较麻烦,工具也很难找到,一下子就来了这么多的JAR包,配置文件也很难写,觉得这不像是个技术,不过慢慢的使使也就习惯了,但写到最后发现在Struts里编写那个ActionForm真是费劲,一开始觉得这样做确实有好处,但是慢慢的发现里面的代码要一下子写好多,所以开始有些厌烦Struts了,但是Struts依然还是有很多好处的,例如:
 •
JSP页面里提供了丰富的标签,可以直接输出List中的内容,也可以通过<bean>标签访问里面类里的属性
 •
通过Struts的标签前台的Scriptlet减少了很多,页面看起来很舒服(不过在不会的人眼中,这样的页面简直是一种折磨)
 
Struts 1.2之中,Struts有了一些改变,其中我个人认为比较好用的就是加入了DispatcherAction的操作,这样在一个Action上处理多种情况变的很简单,用户不用像最早那样需要通过一个参数来判断到底使用的那种操作了,在Struts 1.2之后我开始使用验证框架了,但是没用它做过什么项目,验证框架确实很大的提供了方便,但个人感觉其根本还是在补救Struts中的ActionForm,所以说ActionFormStruts中天生的软肋。

1.2Webwork2
 
 
JavaJIVE论坛的大名算是赫赫有名的,在JIVE论坛中就使用了WebWork技术,也正是因为WebWorkJIVE论坛中的应用,才使得Webwork框架被世人所注意。
 
WebWork之中,没有了Struts中的ActionForm,相反的提出了许多Interceptor的概念,增加了很多的拦截器,方便用户对输入信息进行验证,开发人员也没有必要再去编写各种烦人的验证代码了。

1.3Struts2
 

 



 

编辑web.xml文件,在文件之中配置Struts2的应用

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <filter>
  <filter-name>struts2</filter-name>
  <filter-class>
   org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
</web-app>


建立新的Action,所有的Action继承自ActionSupport

HelloAction.java
package org.lxh.struts2;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {
 private static final String MESSAGE = "hello.msg";

 private String message;

 @Override
 public String execute() throws Exception {
  this.setMessage(super.getText(MESSAGE));
  return ActionSupport.SUCCESS;
 }

 public String getMessage() {
  return message;
 }

 public void setMessage(String message) {
  this.message = message;
 }
}

新建struts.xml文件

struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
 <package name="example"
  extends="struts-default">
  <action name="HelloWorld" class="org.lxh.struts2.HelloAction">
   <result name="success">/hello.jsp</result>
  </action>
 </package>
</struts>

新建package.properties文件

package.properties
hello.msg = HELLO WORLD!!!

建立hello.jsp

hello.jsp
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
  <head>
    <title>My JSP 'hello.jsp' starting page</title>
  </head>
 
  <body>
    <h2><s:property value="message"/></h2>
  </body>
</html>

注意:
1
 如果用的是Tomcat5.0.28.拷贝xalan目录下的xercesImpl.jarxml-apis.jar替换掉Tomcat\common\endorsed下的两个jar文件。
2
 还需要将xalan下的xalan.jarserializer.jar拷贝到Tomcat\common\lib

 

 

 

建立WEB项目

lib目录下的以下*.jar文件拷贝到WEB项目之中。
• struts2-core.jar
xwork.jar
ognl.jar
freemarker.jar
• commons-logging.jar