发布于 2016-07-27 12:25:28 | 86 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Struts Java MVC框架

Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。


本文主要介绍Struts2中通配符的使用,简单实用,希望能给大家做一个参考。

通配符是在struts2配置中非常常用的一种配置方式,在程序开发过程中要遵循“约定优于配置”的原则,在这种原则下,约定的结果如果比较合适的话,就会大大减少配置的数量,使得配置变得非常简单,方便。

下面以例子来做下说明:

1、由如此的一个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>  

    <constant name="struts.devMode" value="true" />  

    <package name="actions" extends="struts-default" namespace="/actions">  

        <action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">  

            <result>/Student{1}_success.jsp</result>  

        </action>  

          

        <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">  

            <result>/{1}_{2}_success.jsp</result>  

            <!-- {0}_success.jsp -->  

        </action>  

    </package>  

</struts>

第一个action使用了一种单个“ * ”的配置方式,它的method="{1}",这个{1}代表的是前面的name属性中的第一个*,对比第二个action,{2}代表的是前面name属性中的第2个*;类似的在第一个action中的result中的{1}也是代表name属性中的第一个*,同样类比第二个result。

2、假如有一个index.jsp文件

<?xml version="1.0" encoding="GB18030" ?>  

<%@ page language="java" contentType="text/html; charset=GB18030"  

    pageEncoding="GB18030"%>  

  

<% String context = request.getContextPath(); %>  

  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml">  

<head>  

<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />  

<title>Insert title here</title>  

</head>  

<body>  

使用通配符,将配置量降到最低<br />  

<a href="<%=context %>/actions/Studentadd">添加学生</a>  

<a href="<%=context %>/actions/Studentdelete">删除学生</a>  

<br />  

不过,一定要遵守"约定优于配置"的原则  

<br />  

<a href="<%=context %>/actions/Teacher_add">添加老师</a>  

<a href="<%=context %>/actions/Teacher_delete">删除老师</a>  

<a href="<%=context %>/actions/Course_add">添加课程</a>  

<a href="<%=context %>/actions/Course_delete">删除课程</a>  

      

</body>  

</html>

那么根据通配符的原理,对于第一个<a></a>,它的指向是StudentAction类中的add方法,则会调用Studentadd_success.jsp文件。同理对于第三个<a></a>则会指向TeacherAction的add方法,调用Teacher_add_success.jsp文件。

通配符的使用使得struts2的配置变得非常简单,它也有自己的原则,即:准确性匹配,越准确则更容易匹配到,例如当由两个action的name都可以匹配到时,它会自动选择更精确的匹配(此时的更精确值得是不含有通配符的情况),在都含有通配符的情况下,好像是哪个在前面哪个更先匹配!

以上就是Struts2的通配符的使用的全部内容,希望能给大家一个参考,也希望大家多多支持phperz。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务