提到Struts框架,不得不说的就是MVC(Model-View-Controller)设计模式。事实上,Struts的核心就是一个MVC风格的控制器,正是Struts控制器搭建起了Model模型和View视图之间的桥梁。至于这样设计的好处,我想大家应该都明白,甚至亲身体验过吧。将业务逻辑与界面分开,将两者之间的耦合度降到最低,更好地实现程序的可扩展性,和维护性。在企业系统开发中就是“能更好地应对需求改变所带来的框架结构调整”。Struts组件是通过一个xml文件来进行配置的。先根据一个基本的Struts2的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.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" /> //这里的devMode说明是开发模式,即你在配置里边做了改变,刷新下界面,服务器端会立即做出响应。
<include file="example.xml"/> //包含文件
<package name="default" namespace="/" extends="struts-default"> //namespace即为访问过程中的“/”namespace的作用是定义访问action的url。
<default-action-ref name="index" />
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>
</package>
-->
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">//strut-default.xml是struts默认加载的配置文件,定义了一些核心的bean和拦截器,通过继承,可以定义自己的一些action,package等
<action name="hellas"> //action的name属性,访问的时候根据这个寻找要执行的动作
<result> //action对应的执行过程
/hello.jsp
</result>
</action>
</package>
<!-- Add packages here -->
</struts>
路径这个地方,就不展开讨论了,一般都是用绝对路径,而且生成的jsp文件中都有相应的路径实例。struts中的路径是根据action的路径而不是jsp的路径来确定的,所以尽量使用绝对路径。
一般的做法是把bathPath设好,
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
然后在<head></head>标签中加入<base href="<%=bathPath%>"/>,然后下边的直接用文件名就可以直接访问到了,如Register.jsp。
先写到这里吧,不是太深入,跟大家一起分享下吧~各位,洗洗睡了,明天还得上班。各位,晚安~!