以前都没有用过WebWork这个框架,只是听说过.没想到现在要用,所以就自学了一下.做了个小例子给大家分享下中间遇到的苦难和经验.
准备工作:首先要去下载WebWork框架的开发包.我用的2.2.6版本的.
开发过程如下:
1.建立一个WEB工程.你解压WebWork的开发包以后会发现有两个jar文件在第一级目录里面,把他们拷贝进你的工程里面.然后你还会看见lib目录(webwork开发支持的所有jar文件),lib目录下面有个defult的目录,把这个目录里面的jar文件也都拷贝进你的工程,他们是开发webwork最基本的保障.
2.在你的web.xml加入下面的代码:
<servlet>
<servlet-name>webwork</servlet-name>
<servlet-class>
com.opensymphony.webwork.dispatcher.ServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>webwork</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
3.创建你的xwork.xml文件,在里面加入下面代码:
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">
<xwork>
<include file="webwork-default.xml" />
<package name="webwork" extends="webwork-default">
<action name="hello"
<result name="yes" type="dispatcher">/yes.jsp</result>
</action>
</package>
</xwork>
4.创建webwork.properties文件(和xwork.xml放在一个文件夹下),写入下列代码
webwork.i18n.encoding=GBK
### Load custom property files (does not override webwork.properties!)
# added the MockTag to the path of Tags that the TagDirective will search through
webwork.velocity.tag.path = com.opensymphony.webwork.views.velocity.ui, org.displaytag.tags
webwork.ui.templateDir = template
### Load custom default resource bundles
### XSLT Cache
webwork.xslt.nocache = true
5.创建HelloWorldAction类在helloworld包下,填写代码如下:
package helloWorld;
import com.opensymphony.xwork.Action;
public class HelloWorldAction implements Action {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String execute() throws Exception {
// 处理乱码
userName = new String(userName.getBytes("iso-8859-1"),"GBK");
System.out.println(userName);
return "yes";
}
}
6.然后在创建下列两个jsp页面.
第一个页面:index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" c>
<meta http-equiv="cache-control" c>
<meta http-equiv="expires" c>
<meta http-equiv="keywords" c>
<meta http-equiv="description" c>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="hello.action" method="post">
<input type="text" name="userName"/>
<br>
<input type="submit"/>
</form>
</body>
</html>
第二个页面:yes.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix = "ww" uri = "/webwork" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'yes.jsp' starting page</title>
<meta http-equiv="pragma" c>
<meta http-equiv="cache-control" c>
<meta http-equiv="expires" c>
<meta http-equiv="keywords" c>
<meta http-equiv="description" c>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
yes. <br>
<ww:property value="%{userName}"/>
</body>
</html>
到这里就OK了,运行你的项目吧..
在index.jsp页面中输入文字,点提交在yes.jsp页面给与显示...
如果你就按照上面这样做,你会发现会出错误.错误原因有可能是因为你的tomcat里面解析xml的jar包版本过低.
解决办法就是下载xalan.jar文件.
然后把里面的jar文件都拷贝到tomcat安装目录下面的common目录下的endorsed目录下...就OK了.