Struts2学习笔记02----第一个struts2应用程序

发布时间:2014-10-23 23:29:20
来源:分享查询网

开发环境:win7+Tomcat7+MyEclipse8.6 项目框架如图: 第一步:新建webproject项目,并添加struts2的支持,同时myeclipse会为我们配置好web.xml。不需要我们手工配置。 第二步:新建PersonAction文件 package com.stone.Action; import com.opensymphony.xwork2.ActionSupport; public class PersonAction extends ActionSupport { private static final long serialVersionUID = 1L; 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; } public String execute() throws Exception { if(username.equals("stone") && password.equals("stone")) return "success"; else return "failure"; } }第三步:在struts.xml文件中注册PersonAction。主要代码如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="myFirst" namespace="/struts2" extends="struts-default"> <action name="login" class="com.stone.Action.PersonAction"> <result name="success">/WEB-INF/Page/loginSuccess.jsp</result> <result name="failure">/WEB-INF/Page/loginfailure.jsp</result> </action> </package> </struts> 包配置: Struts2 框架中核心组件就是Action、拦截器等,Struts2 框架使用包来管理Action 和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。 在struts.xml 文件中package 元素用于定义包配置,每个package 元素定义了一个包配置。它的常用属性有: name:必填属性,用来指定包的名字。 extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action 定义、拦截器定义等。 namespace:可选属性,用来指定该包的命名空间。 第四步:提供jsp页面 login.jsp主要代码: <%@ page language="java" import="java.util.*" contentType="text/html; charset=gbk"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> <form action="${pageContext.request.contextPath}/struts2/login.action"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="登陆"> </form> </body> </html>failue.jsp <%@ page language="java" import="java.util.*" contentType="text/html; charset=gbk"%> <%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> 登录失败!错误的用户名:<s:property value="username"/><br> <a href="${pageContext.request.contextPath}/login.jsp">返回</a> </body> </html> success.jsp <%@ page language="java" import="java.util.*" contentType="text/html; charset=gbk"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> 登陆成功! </body> </html> 运行如图所示: 简要分析执行流程: 当输入login.jsp 访问jsp 页面填写完相关信息并提交给login.action 时,它会首先被在web.xml 中配置的过滤器监听到,过滤器会去查找strust.xml 文件,并结合namespace 查找名为login 的action,查找到此action 便交给其处理,LoginAction 内部会执行execute 方法,并返回结果result(result 也是参照的struts.xml 中action 下的result 配置)。 关于表单传参,主要是参照的action 中的方法名,而非属性名。 登陆界面,用户名输入stone,密码输入stone 单击登陆 当输入错误的密码时”:

返回顶部
查看电脑版