您的位置:首页 > 其它

webWork2.2的简单配置介绍!

2007-04-03 12:49 477 查看
很长时间没写笔记了,研究了一段时间的webwork,今天写点学习笔记之类的东西。

Webwork是一个MVC框架,和其他MVC框架一样,分离web开发中的,控制,模型和视图。个人感觉,她的配置更加简单和优雅,更容易新人上手。同时,业务逻辑也更加清晰,对软件的维护和扩展有很大的帮助。(有多少帮助也不是很清楚,还是讲讲配置把!)

需要的包,去baidu或者google都能找到很多。现在常用的版本是2.2.4。2.1版本和2.2版本还是有不少区别,如果想学习,还是多看看介绍2.2的教程。

建立工程,加载所需要的包就不说了。

看下重要的配置文件把:

Web.xml 配置核心控制器:

<filter>

        <filter-name>webwork</filter-name>

        <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>

    </filter>

 

      <filter-mapping>

        <filter-name>webwork</filter-name>

        <url-pattern>*.action</url-pattern>

    </filter-mapping>

可说的也没多少,照这例子配置的,那个*.action是你要处理的文件的后缀名,例如提交的表单中的action=”*.action” 这样就可以调用指定的处理类了。

WEB-INF/classes 目录下:xwork.xml. 配置action的地方。

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

     <include file="webwork-default.xml" />

     <package name="default" extends="webwork-default">

 

     <action name="testAction" class="testAction" method="test">

         <result name="success">/view.jsp</result>

     </action>

    

    

     </package>

</xwork>

 

具体的action配置规范可以参考 相关文档。

重点说两个有用的东东,第一个是拦截器,第二个是视图技术。

拦截器能过滤很多东西,例如:你表单中的参数是否合法等。简化你的编码工作。

视图就不说了,jsp,pdf,自定义标签等。Webwork都支持,其中官方还推进一种模版技术,freemarker。(这个还在研究中,很不错的东西。)

 

下面来看看action怎么写。

 

import com.opensymphony.xwork.Action;

import com.opensymphony.xwork.ActionSupport;

 

public class LoginAction extends ActionSupport implements Action {

       // 必需进行初始化

     private User user = new User();

 

     public User getUser() {

         return user;

     }

 

     public String execute() throws Exception {

         // 可以在这里调用Service层来进行验证,这里只验证用户名

         if (user.checkResult(user.getUserName(),user.getUserPwd()))

              return this.SUCCESS;

         else

              return this.ERROR;

     }

    

}

 

 

这个是model类的例子:

public class User {

 

         private String userName;

         private String userPwd;

        

         public String getUserName() {

              return userName;

         }

         public void setUserName(String userName) {

              this.userName = userName;

         }

         public String getUserPwd() {

              return userPwd;

         }

         public void setUserPwd(String userPwd) {

              this.userPwd = userPwd;

         }

        

         public static void main(String[] args) {

              // TODO 自动生成方法存根

 

         }

         public boolean checkResult(String userName,String userPwd){

              String username=userName;

              String userpwd=userPwd;

             

              if(username.equals("totti")||userpwd.equals("totti")){

                   return true;

                  

              }

             

             

              return false;

         }

        

        

     }

需要提交的表单:

<form id="loginForm" name="myForm" method="post" action="login.action" >

  用户名:

  <label>

  <input type="text" name="user.userName" />

  </label>

  <p>密码:

    <label>

    <input type="text" name="user.userPwd" />

    </label>

  </p>

  <p>

    <label>

    <input type="submit" name="Submit" value="提交" />

    </label>

  </p>

</form>

 

配置的action

 

<action name="login" class="webWork.LoginAction">

              <!--  这里的意思是登录成功后跳转到 /ok.jsp 页面 -->

              <result name="success" type="dispatcher">

                  <param name="location">/view/ok.jsp</param>

              </result>

              <!--  登录失败后则返回登录页 -->

              <result name="error" type="dispatcher">

                   <param name="location">/view/err.jsp</param>

              </result>

              <result name="input" type="dispatcher">

                <param name="location">/view/login.jsp</param>

            </result>

              <!--  此段代码为作用是将request请求的参数传递到 action 中 -->

              <interceptor-ref name="params" />

              <interceptor-ref name="validationWorkflowStack"/>

             

         </action>

可以看到,提交过来的数据会被设置器方法设置,在model中实现数据的处理,然后返回给控制器。

上面给出的是代码的片段,应该不能直接正常运行。如果想得到范例代码,就留下联系方式,我会给你发一份代码的。

下次,会介绍下webWork +spring 的配置方式,利用spring动态注入action是对action管理的最佳解决方案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息