手动配置流程(以登陆验证系统为例):
一、首先在Eclipse下创建一个动态Web项目,将下载好的struts1.3.10的压缩包解压之后的lib目录下的jar文件全部拷贝到对应的Web项目的WEB-INF下的lb目录下,此时在本项目的Web App Libraries可以看到我们引进去的包。WEB-INF用于存放一些驱动包。
二、在WEB-INF目录下编写简单的login.jsp页面,body标签中的主要代码如下。
- <span style="font-size: small;"><form action="/StrutsLogin/login.do" method="post">
- 用户名:<input type="text" name="username"/><br/>
- 密码:<input type="password" name="password"/><br/>
- <input type="submit" value="登陆"/>
- </form></span>
三、创建用户表单类UserForm。表单类主要用来存放数据。代码和详细注释如下。
- <span style="font-size: small;">package cn.yzz.forms;
- import org.apache.struts.action.ActionForm;
- /**
- * 用户表单类,用于填充数据
- */
- public class UserForm extends ActionForm {
- //在这里为了规范:定义属性名时应该和JSP页面的控件名称一样
- //实际只需保证set和get方法和属性名有关联 set属性名
- private String username;
- private String password;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }</span>
四、编写LoginAction,继承自Action,对应于分控制器,用于处理Form提交的表单数据。
- <span style="font-size: small;">package cn.yzz.actions;
- 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;
- import cn.yzz.forms.UserForm;
- /**
- * 登陆Action,用于处理登陆请求
- */
- public class LoginAction extends Action{
- //execute自动调用,
- @Override
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response)
- throws Exception {
- //将Form强转为UserForm
- UserForm userForm = (UserForm)form;
- String username = userForm.getUsername();
- String password = userForm.getPassword();
- //将用户名存入request表单域中
- request.setAttribute("username", username);
- if("888888".equals(password))
- return mapping.findForward("welcome");
- else
- return mapping.findForward("error");
- }
- }</span>
五、在WEB-INF下新建一个名为config的文件夹,在config文件夹里面创建名为struts-config.xml文件,这是struts的配置文件,在此文件中,详细配置struts。下面是struts的详细配置信息及其注释。
- <span style="font-size: small;"><?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts-config PUBLIC "-Apache Software Foundation//DTD struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
- <struts-config>
- <!-- 配置表单 -->
- <form-beans>
- <!-- name为表单名字,可以随意,建议取名:表单类名的小写 -->
- <!-- type用于指定表单类的全路径 -->
- <form-bean name="userForm" type="cn.yzz.forms.UserForm"></form-bean>
- </form-beans>
- <!-- 配置action -->
- <action-mappings>
- <!-- path:将来访问action的uri name必须和表单名相同,用于关联某个表单 type:指定action的全路径-->
- <!-- scope:指定该action对应的表单对象的生命周期为request级别 =request.setAttribute("userForm",userForm),默认为session-->
- <action path="/login" name="userForm" scope="request" type="cn.yzz.actions.LoginAction">
- <!-- 这里配置跳转关系 name:结果名称 path:转发页面-->
- <forward name="welcome" path="/WEB-INF/welcome.jsp"></forward>
- <forward name="error" path="/WEB-INF/error.jsp"></forward>
- </action>
- </action-mappings>
- </struts-config></span>
六、配置WEB-INF目录下的web.xml文件,此文件主要存放服务器的配置信息。
- <span style="font-size: small;"><servlet>
- <servlet-name>action</servlet-name>
- <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
- <init-param>
- <param-name>config</param-name>
- <param-value>/WEB-INF/config/struts-config.xml</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>action</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping></span>
七、最后在WEB-INF目录下编写weicome.jsp和error.jsp页面,填入简单的信息即可。在welcome.jsp页面中主要代码如下。
- <span style="font-size: small;"><body>
- 恭喜<%=((UserForm)request.getAttribute("userForm")).getUsername()%>登陆成功!
- <a href="/StrutsLogin/">返回重新登陆</a>
- </body></span>
这样,最简单的一个Struts应用就搞定了,手动配置有助于初学者了解Struts的原理。熟悉了原理之后,就可以用相对简单的MyEclipse来开发Struts了!