以前都没有用过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了.

webwork框架的更多相关文章

  1. Webwork 学习之路【08】结合实战简析Controller 配置

    虽然现在 MVC 框架层出不穷,但做为 Struts 前身的 webwork. 其经典程度不亚于贝利之于足球,双 11 之于淘宝特卖. 本篇将结合 webwork controller 配置文件 xw ...

  2. Struts,spring,hibernate三大框架的面试

    Struts,spring,hibernate三大框架的面试 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3 ...

  3. Java工程师三大框架面试题汇总

    1. Hibernate3 提供了属性的延迟加载功能? 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内 ...

  4. SSH三大框架笔面试总结

    Java工程师(程序员)面题 Struts,Spring,Hibernate三大框架 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建Sess ...

  5. Webwork 学习之路【06】Action 调用

    一路走来,终于要开始 webwork 核心业务类的总结,webwork 通过对客户端传递的 web 参数重新包装,进行执行业务 Action 类,并反馈执行结果,本篇源码分析对应下图 WebWork ...

  6. Webwork 学习之路【05】请求跳转前 xwork.xml 的读取

    个人理解 WebWork 与 Struts2 都是将xml配置文件作为 Controler 跳转的基本依据,WebWork 跳转 Action 前 xml 文件的读取依赖 xwork-1.0.jar, ...

  7. Webwork 学习之路【04】Configuration 详解

    Webwork做为经典的Web MVC 框架,个人觉得源码中配置文件这部分代码的实现十分考究. 支持自定义自己的配置文件.自定义配置文件读取类.自定义国际化支持. 可以作为参考,单独引入到其他项目中, ...

  8. Webwork 学习之路【03】核心类 ServletDispatcher 的初始化

    1. Webwork 与 Xwork 搭建环境需要的的jar 为:webwork-core-1.0.jar,xwork-1.0.jar,搭建webwork 需要xwork 的jar呢?原因是这样的,W ...

  9. Webwork 学习之路【01】Webwork与 Struct 的前世今生

    Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts ...

随机推荐

  1. request的基本应用

    一.安装 pip install requests (mac前面加sudo) 二.requests的一些参数 method:一般是用的那种请求方法,是get还是post,delete或者delete ...

  2. Counted(内存管理机制)

    class Counted { private: unsigned int count_; public: Counted() : count_() { } virtual ~Counted() { ...

  3. 2018.12.21 浪在ACM 集训队第十次测试赛

     浪在ACM 集训队第十次测试赛 A Diverse Substring B Vasya and Books C Birthday D LCM A 传送门 题解 B 传送门 题解: 这道题,就比较简单 ...

  4. Vuex异步请求数据通过computed计算属性值

    问题描述: 使用Vuex管理数据时,在组件内使用$emit分发事件后,获取回来的数据要自动更新到该组件内,需要使用computed来计算更新. 一开始尝试使用赋值给data的方法,后来发现重新发起aj ...

  5. TODO java 作业-梭哈--待完成

    作业:定义一个类,该类用于封装一桌梭哈游戏,这个类应该包含桌上剩下的牌的信息,并包含5个玩家的状态的信息,他们各自的位置,游戏状态(正在游戏或已放弃),手上已有的牌等信息.如果有可能,这个类还应该实现 ...

  6. Python3的第一个程序

    软件:Anaconda Navigator集成开发环境中的Spyder,自带Python,无需单独安装. 注意:Python对缩进和空格敏感,代码必须对齐(包括注释),否则出现错误unexpected ...

  7. 用go实现一个redis-cli

    转载文章:https://my.oschina.net/liangwt/blog/2231557?origin= 代码样例:https://github.com/liangwt/redis-cli

  8. 运维监控-使用Zabbix Server 创建 Actions

    运维监控-使用Zabbix Server 创建 Actions 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. zabbix的action默认是关闭的,因此我们想使用它就得先启用哟. ...

  9. script weixin app / weixin xiao chen xu

    s 开发人员: 1.设置权限程序员管理人员-管理体验者-配置测试人员的真实微信号2.微信小程序的后台-上传体验版代码-生成体验码二维码测试人员: 1.你的台式机/笔记本申请内外网.有usb权限2.有W ...

  10. Windows 运行库

    Microsoft Visual C++ 2005 Redistributable - 8.0.61001http://download.microsoft.com/download/8/B/4/8B ...