JAVA Struts2框架之开篇

时间:2022-07-24 13:15:11
   经历沟沟坎坎,总算是通过了“三面”,进入了公司实习,无奈很多东西都不懂,大学里边学的那点儿JAVA的基础,是能坐在开发室的唯一一点儿资本了。PM让我跟着一位“花甲哥”学框架。忍了,谁叫咱刚毕业来着,这些东西以前也没咋用过。想想那个技术总监不屑的神态,就来气!废话少说,就我学习Struts2框架的历程中遇到的一些问题和总结的东西,与大家共享一下,不当之处,还望各位大神给与批评指正。

        提到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。

先写到这里吧,不是太深入,跟大家一起分享下吧~各位,洗洗睡了,明天还得上班。各位,晚安~!