Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22320
  • 博文数量: 12
  • 博客积分: 520
  • 博客等级: 中士
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-03 15:32
文章分类

全部博文(12)

文章存档

2011年(1)

2009年(11)

我的朋友
最近访客

分类: 系统运维

2009-03-24 18:58:29

今天终于搞定第一个struts,感觉很简单,开发环境是Myeclipse6.5+Tomcat 6.0, 主要步骤如下:
1. 建立web project,命名为MyStruts,然后右击项目,选择MyEclipse中的add struts capabilities....。
2. 编写HelloWorldAction,该类继承org.apache.struts.action.Action。主要完成execute方法的编写。代码如下:
 

package com.gf.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class HelloWorldAction extends Action {
   
    public ActionForward execute(ActionMapping mapping,ActionForm form
            ,HttpServletRequest request,HttpServletResponse response)throws Exception{
        System.out.println("form: "+form);
        String msg=((HelloWorld)form).getMsg();
        if(msg!=null)
            request.setAttribute("helloWorld", msg);
        else
            request.setAttribute("helloWorld", "HelloWorld");
        return mapping.findForward("show");
        
    }
}

3. 编写HelloWorld,该类继承org.apache.struts.action.ActionForm。它是一个Java Bean,对应html页面中提交的窗体。代码如下:

package com.gf.action;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

public class HelloWorld extends ActionForm {
    private String msg = null;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
    public void reset(ActionMapping mapping, HttpServletRequest request){
        this.msg = null;
    }
}

4. 新建一个输入提交页面input.jsp,主要是把用户输入的信息提交到HelloWorldAction内部处理。代码示例如下:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'input.jsp' starting page</title>
  </head>
  <body>
    <form name="HelloWorld" action="/MyStruts/helloWorld.do" method="post">&nbsp;
      欢迎语 <input type="text" name="msg" value="Hello,Jerry!" /> <br>
      <input type="submit" name="method" value="提交"/>
    </form>
  </body>
</html>

5. 新建输出提交内容的页面show.jsp。示例代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>My JSP 'index.jsp' starting page</title>
    </head>
    <body>
        <form name="HelloWorld" action="/MyStruts/helloWorld.do" method="post">
            &nbsp; 您输入的欢迎语是"${helloWorld}"<br>    
        </form>
    </body>
</html>

6. 配置struts-config.xml,主要是定义form-bean:HelloWorld和定义action,有一点很重要,要将path为"/helloWorld"的action的name设为form-bean的name,这样二者才能关联起来,传入action的execute方法中的form才会正确传入,否则是null。示例代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "">
<struts-config>
    <form-beans>
        <form-bean name="helloWorld" type="com.gf.action.HelloWorld" />
    </form-beans>
    <action-mappings>
        <action path="/helloWorld" type="com.gf.action.HelloWorldAction"
            name="helloWorld">
            <forward name="show" path="/show.jsp"></forward>
        </action>
        <action path="/input"
            type="org.apache.struts.actions.ForwardAction"
            parameter="/input.jsp">
        </action>
    </action-mappings>
</struts-config>

7. 配置web.xml.这个一般不用修改,在添加struts capabilities时就自动做了处理,主要是配置ActionServlet,将*.do的请求全部发给该servlet处理。示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="" xmlns:xsi="" version="2.5" xsi:schemaLocation=" /web-app_2_5.xsd">
  <servlet>
    <servlet-name>actionServlet</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>actionServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

8. 最后将该工程部署到tomcat下面,在浏览器中输入即可看到含有提交按钮的页面。输入内容,然后点击提交,将会看到输入的内容显示在页面上。

   总结:通过运行简单的struts程序,了解了struts框架的基本结构,以及配置的方法,为进一步学习奠定基础。

阅读(382) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:struts中DispatchAction的使用

给主人留下些什么吧!~~