五 Struts2 配置文件
一.struts.xml详解
1.package:包 属性:name=命名 namespace=在action访问路径前面加的前缀 extends=继承另外的包
action:name=action的访问路径 class="action"的完整包路径 method=指定访问的方法 (还可以url动态访问)
gboal-result:全局的跳转
intercepts:拦截器
gboal-exception-mapping: 异常拦截处理
2.include:可以将struts.xml拆分成多个配置文件,将其引用 file="文件路径"
3.constant:常量,是一些功能的开关
二.动态访问action中的自定义方法
在url后面加上!+方法名
例如:http://localhost:8888/Struts2/stu!select
三.结果类型:
<result name="xxx" type="value">stu!select?page=1</result>
1.dispatcher:转发,默认
2.redirect:重定向
3.stream:流,用于文件下载
如果一个结果不是引导到页面而是继续访问下一个action中的操作,其type必须是redirect
实例:增删改查
CRUD.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html> <html> <head> <base href="<%=basePath%>"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <a href="crud!add">新增</a><br> <a href="crud!del">删除</a><br> <a href="crud!update">修改</a><br> <a href="crud!query">查询</a><br> </body> </html>
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> <include file="struts-gy.xml"></include> </struts>
Struts-gy.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> <package name="my" namespace="/" extends="struts-default"> <action name="login" class="com.action.LoginAction" method="login"> <result name="success" type="redirect">/jsp/success.jsp</result> </action> <action name="crud_add" class="com.action.CRUDAction" method="add"> <result name="success">/jsp/success.jsp</result> </action> <action name="crud_del" class="com.action.CRUDAction" method="del"> <result name="success">/jsp/success.jsp</result> </action> <action name="crud" class="com.action.CRUDAction"> <result name="success">/jsp/success.jsp</result> <result name="del" type="redirect">/crud!query</result> </action> </package> </struts>
CRUDAction.java
package com.action; public class CRUDAction { public String add(){ System.out.println("新增"); return "success"; } public String del(){ System.out.println("删除"); return "del"; } public String update(){ System.out.println("修改"); return "success"; } public String query(){ System.out.println("查询"); return "success"; } }