今天终于搞定第一个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"> 欢迎语 <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"> 您输入的欢迎语是"${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) |