Jsp之Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EE MVC实现方式,如果你的系统准备采用J2EE MVC架构,那么,不妨考虑一下Struts,下面本文对Jsp之Struts做一简要介绍。
1.安装Struts:
首先到http://jakarta.apache.org/Struts下载Struts,建议使用release版,现在最高版本为1.2.6,有多种OS版本(windows,linus...),下载后解压开来,可以看到这个目录:lib和webapps,webapps下有一些WAR文件。假设你的Tomcat装在c://Tomcat下,则将那些WAR文件拷贝到C://Tomcat//webapps,重新启动Tomcat即可。打开浏览器,在地址栏中输入:http://localhost:8080/Struts-examples/,若能见到“powered by Struts”的深蓝色图标,即说明成功了。这是Struts自带的一个例子,附有详细的说明文档,可以做为初学者的入门教程。另外,Struts还提供了一系统实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息等
2.练习做一个实例:
一个用户注册系统,用户通过网页输入相关信息:注册ID号,密码,EMAIL,若注册成功,则返回成功提示信息,反之出现注册失败提示信息。
项目建立:
正式开发前,需要在Tocmat(我的tomcat装在c://tomcat)中建立此项目。比较快的一种建立方式为:在C://tomcat//webapps下新建目录test,再将C://tomcat//webapps//struts-example下的WEB-INF目录拷贝到test目录下,然后将test//WEB-INF下的src和classes目录清空,以及struts-config.xml文件中内容清空即可。这样,我们需要的Struts类包及相关的配置文件就都齐了。
开发时,将JSP文件放在test目录下,Java原文件放在test//WEB-INF//src下,编译后的类文件放在test//WEB-INF//classes下。
注册页面:reguser.jsp
<%@ page contentType=/"text/html;charset=UTF-8/" language=/"java/" %> <%@ taglib uri=/"/WEB-INF/Struts-bean.tld/" prefix=/"bean/" %> <%@ taglib uri=/"/WEB-INF/Struts-html.tld/" prefix=/"html/" %> <html:html locale=/"true/"> <head> <title>RegUser</title> <html:base/> </head> <body bgcolor=/"white/"> <html:errors/> <html:form action=/"/regUserAction/" focus=/"logname/"> <table border=/"0/" width=/"100%/"> <tr> <th align=/"right/"> Logname: </th> <td align=/"left/"> <html:text property=/"logname/" size=/"20/" maxlength=/"20/"/> </td> </tr> <tr> <th align=/"right/"> Password: </th> <td align=/"left/"> <html:password property=/"password/" size=/"20/" maxlength=/"20/"/> </td> </tr> <tr> [Page] <th align=/"right/"> E-mail: </th> <td align=/"left/"> <html:password property=/"email/" size=/"30/" maxlength=/"50/"/> </td> </tr> <tr> <td align=/"right/"> <html:submit property=/"submit/" value=/"Submit/"/> </td> <td align=/"left/"> <html:reset/> </td> </tr> </table> </html:form> </body> </html:html> |
<Struts-config> <form-beans> <form-bean name=/"regUserForm/" type=/"org.cjea.Struts.example. RegUserForm /"/> </form-beans> <action-mappings> <action path=/"/regUserAction/" type=/" org.cjea.Struts.example.RegUserAction /" attribute=/" regUserForm /" scope=/"request/" validate=/"false/"> <forward name=/"failure/" path=/"/ messageFailure.jsp/"/> <forward name=/"success/" path=/"/ messageSuccess.jsp/"/> |
package org.cjea.Struts.example; import javax.Servlet.http.HttpServletRequest; import org.apache.Struts.action.ActionForm; import org.apache.Struts.action.ActionMapping; public final class RegUserForm extends ActionForm{ private String logname; private String password; private String email; public RegUserForm(){ logname = null; password = null; email = null; } public String getLogName() { return this.logname; } public void setLogName(String logname) { this.logname = logname; } public void setPassWord(String password) { this.password = password; } public String getPassWord() { return this.password; } public void setEmail(String email) { this.email = email; } public String getEmail() { return this.email; } public void reset(ActionMapping mapping, HttpServletRequest request) { logname = null; password = null; email = null; } } |
package org.cjea.Struts.example; import javax.Servlet.http.*; import org.apache.Struts.action.*; public final class RegUserAction extends Action { public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) { String title = req.getParameter(/"title/"); String password = req.getParameter(/"password/"); String email = req.getParameter(/"email/"); /* 取得用户请求,做相应数据库操作,略 */ } } |
新闻热点
疑难解答