您的位置:首页 > 编程语言 > Java开发

struts2:通配符的使用

2016-04-25 09:15 489 查看

介绍

学习了一下struts2的通配符的使用,因为之前的项目中由于数量巨大的action文件导致struts.xml文件特别庞大,所以我个人感觉struts2的通配符的

优点:

精简struts.xml配置文件(尤其action特别多的情况下)

使项目的V层更规范化统一化(比如action文件和jsp文件的命名都得可以自行规范统一)

缺点:

struts.xml文件阅读不那么直观。

使用

先看一下我是怎么用的:

struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<include file="struts-default.xml" />

<package name="default" extends="struts-default">
<action name="*_*" class="com.ssmtest.action.UserAction" method="{2}">
<result name="success">/{1}/{2}_success.jsp</result>
</action>
</package>
</struts>


com.ssmtest.action.UserAction文件

package com.ssmtest.action;

import com.opensymphony.xwork2.ActionSupport;
import com.ssmtest.bean.User;
import com.ssmtest.service.IUserService;

public class UserAction extends ActionSupport{

/**
*
*/
private static final long serialVersionUID = 1L;
private User newUser;
private IUserService userService;

public String add() throws Exception{
userService.addUser(newUser);
return SUCCESS;

}

public User getNewUser() {
return newUser;
}

public void setNewUser(User newUser) {
this.newUser = newUser;
}

public IUserService getUserService() {
return userService;
}

public void setUserService(IUserService userService) {
this.userService = userService;
}

}


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>
<html>
<head>
<base href="<%=basePath%>">
<title>注册</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="./css/style.css">
</head>
<body>
<form action="user_add" method="post">
<label>注册用户:</label><br/>
<label>用户名:</label>
<input type="text" name="newUser.userName"><br/>
<label>密码:</label>
<input type="password" name="newUser.password"><br/>
<input type="submit" value="注册">
<input type="reset" value="重置" >

</form>
</body>

</html>


注册成功返回的页面名称为:add_success.jsp

原理说明:

1.在index.jsp页面点击提交后,执行form的action,name为:user_add。

2.struts.xml匹配action:

<action name="*_*" class="com.ssmtest.action.UserAction" method="{2}">
<result name="success">/{1}/{2}_success.jsp</result>
</action>


由此得第一个星号为user,第二个星号为add,method后的数字2代表第二个星号add,也就是执行UserAction类中的add方法,结果返回页面的数字与星号匹配后结果为“/user/add_success.jsp”,即为webroot目录的user文件夹下的add_success.jsp页面。

OK~MISSION SUCCESS

SO EASY SO CONVENIENT

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: