首先,需要搭建环境,导入jar包,把struts2文件中app文件夹下的实例中lib中的包复制到项目的lib目录下
同时将struts.xml放到src目录下
然后配置web.xml
<filter> <filter-name>Struts2Filter</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>Struts2Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
如果是通过手动添加的,这些均可自动配置
项目右键-->myeclipse-->add struts.......选择添加即可
打开struts.xml文件:按alt+/提示元素
struts2有如下提示元素:
解释一下这几个标签
<!-- 创建一个JavaBean实例 --> <bean class=""></bean> <!-- 用于Struts2默认行为配置的标签 --> <constant name="" value=""></constant> <!-- 包标签, 用于区分不同的请求文件的标签, 如网站前台请求,网站后台请求 --> <package name=""></package> <!-- 用于引入其他xml配置文件 --> <include file=""></include>
主要的constant配置文件
<!-- 配置web默认编码集,相当于HttpServletResponse.setChartacterEncoding --> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <!-- 默认Struts2的请求后缀是.action,也就是不配置该元素,action/do都可以 --> <constant name="struts.action.extension" value="action,do"></constant> <!-- 设置浏览器是否缓存静态内容,默认值为true,开发阶段建议关闭 --> <constant name="struts.serve.static.browserCache" value="false"></constant> <!-- 当struts配置文件修改后,系统是否重新加载该文件,默认为false --> <constant name="struts.configuration.xml.reload" value="true"></constant> <!-- 开发模式下,可以打印出更加详细的错误 --> <constant name="struts.devMode" value="true"></constant> <!-- 默认视图主题 --> <constant name="struts.ui.theme" value="simple"></constant>
package:
<!-- name属性:包名, 用于被别的包调用或继承 extends: 继承哪个包,会继承该包下配置信息和拦截器等等 namespace: 选填,url连接必须加入/new/action.xxx --> <package name="test" namespace="/new" extends="struts-default" > </package>
新建如下文件:
在LoginAction.java中加入:
package com.jike.action; public class LoginAction { private String username; private String password; public String execute(){ if(username.equals("admin") && password.equals("123")){ return "success"; }else{ return "fail"; } } 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; } }
在index.jsp中加入如下代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <form action="<%=path %>/new/login.action" method = "post"> 用户名:<input type="text" name="username" /><br/> 密码:<input type="password" name = "password"/><br/> <input type="submit" value="提交"><br/> </form> </body> </html>
在success.jsp中加入:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> 登陆成功 <br> </body> </html>
fail.jsp改为“登陆失败,其他不变”
具体的struts.xml中的配置信息如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <!-- 配置根元素 --> <struts> <!--bean 创建一个JavaBean实例 --> <!--constant 用于Struts2默认行为配置的标签 --> <!--package 包标签, 用于区分不同的请求文件的标签, 如网站前台请求,网站后台请求 --> <!--include 用于引入其他xml配置文件 --> <!-- 配置web默认编码集,相当于HttpServletResponse.setChartacterEncoding --> <constant name="struts.i18n.encoding" value="UTF-8"></constant> <!-- 默认Struts2的请求后缀是.action,也就是不配置该元素,action/do都可以 --> <constant name="struts.action.extension" value="action,do"></constant> <!-- 设置浏览器是否缓存静态内容,默认值为true,开发阶段建议关闭 --> <constant name="struts.serve.static.browserCache" value="false"></constant> <!-- 当struts配置文件修改后,系统是否重新加载该文件,默认为false --> <constant name="struts.configuration.xml.reload" value="true"></constant> <!-- 开发模式下,可以打印出更加详细的错误 --> <constant name="struts.devMode" value="true"></constant> <!-- 默认视图主题 --> <constant name="struts.ui.theme" value="simple"></constant> <!-- name属性:包名, 用于被别的包调用或继承 extends: 继承哪个包,会继承该包下配置信息和拦截器等等 namespace: 选填,url连接必须加入/new/action.xxx --> <package name="test" namespace="/new" extends="struts-default"> <!-- action相当于Servlet的概念,对应一个请求,name为请求的url localhost:8080/项目名/new/login.do --> <action name="login" class="com.jike.action.LoginAction"> <result name="success">/success.jsp</result> <result name="fail">/fail.jsp</result> </action> </package> </struts>
Http请求流转流程:
配置文件连接点:
极客学院:http://www.jikexueyuan.com/course/697_2.html?ss=2
最后两张图像截取自原视频。
时间: 2024-11-17 16:48:59