马士兵 struts 学习笔记

黑马程序员Pink的javaScript课程APIday4 本文摘要:介绍了JavaScript中日期对象的实例化方法(有参/无参)及三种获取时间戳的方式。讲解了DOM节点操作,包括节点查找(父、子、兄弟节点)、增加/克隆/删除节点的方法。详细说明了移动端touch事件和Swiper插件的使用,包括自动播放和小圆点配置。最后提及学成在线案例中表单验证和取消默认跳转的实现。 阅读详情
1.在jsp中使用绝对路径:
在头重设置:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
或者:<% String basePath = request.getContextPath(); %>
在head中设置:
<head>
<base href="<%=basePath%>" />
</head>
basePath=http://localhost:8088/StrutsDemo1
即可在body中直接用绝对路径来访问
<a href="path/path.action">路径问题说明</a>
相当于访问【http://localhost:8088/StrutsDemo1/path/path.action】

2.Action执行的时候并不一定要执行execute方法
可以在配置文件中配置Action的时候用method=来指定执行哪个方法也可以在url地址中动态指定(动态方法调用DMI)(推荐)
<a href="<%=basePath %>/user/userAdd">添加用户</a>
对应的action如下:
【<action name="userAdd" class="com.bjsxt.struts2.user.action.UserAction" method="add">
            <result>/user_add_success.jsp</result>
  </action>
 】
<a href="<%=basePath %>/user/user!add">添加用户</a>
对应的action如下:
【 <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
            <result>/user_add_success.jsp</result>
   </action>】
 前者会产生太多的action,所以不推荐使用
 
3.【使得配置struts更简单】使用通配符,将配置量降到最低
  不过,一定要遵守"约定优于配置"的原则
  用例:
  <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>
  http://localhost:8088/StrutsDemo1/actions/Studentadd若请求这个参数表示,访问add()方法。
       访问方法后调用Studentadd_success.jsp
 
4.使用Domain Model接收参数
   url如下:http://localhost:8088/StrutsDemo1/user/user!add?user.name=a&user.age=8
   user.name表示属性。这里的user要与方法中的setUser()方法对应 也就是说要用类中定义的user
   定义的action类如下:
   public class UserAction extends ActionSupport {
    
    private User user;
    public String add() {
        System.out.println("name=" + user.getName());
        System.out.println("age=" + user.getAge());
        return SUCCESS;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
    
}

5.使用ModelDriven接收参数:
url请求:http://localhost:8088/StrutsDemo1/user/user!add?name=a&age=8
定义的action类如下:
public class UserAction extends ActionSupport implements ModelDriven<User>{
    
    private User user = new User();
    
    public String add() {
        System.out.println("name=" + user.getName());
        System.out.println("age=" + user.getAge());
        return SUCCESS;
    }

    @Override
    public User getModel() {
        return user;
    }
    
}
6.使用action属性接收参数,测试中文问题
  在sturts加上:<constant name="struts.i18n.encoding" value="GBK" /> <!-- internationalization -->

7.使用addFieldError方法和s:fieldError标签简单处理数据校验
在头文件导入struts tag:<%@taglib uri="/struts-tags" prefix="s" %>
  <s:fielderror fieldName="name" theme="simple"/>
    <br />
    <s:property value="errors.name[0]"/>
    <s:debug></s:debug>【可以点击观察这些栈都存在什么】

8.取得Map类型request,session,application,真实类型 HttpServletRequest, HttpSession, ServletContext的引用:
--前三者:依赖于容器
--前三者:IOC(只用这种)
--后三者:依赖于容器
--后三者:IOC
例子:
传过来的参数到action类中:
package com.bjsxt.struts2.user.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction1 extends ActionSupport {
    
    private Map request;
    private Map session;
    private Map application;
    
    public LoginAction1() {
        request = (Map)ActionContext.getContext().get("request");
        session = ActionContext.getContext().getSession();
        application = ActionContext.getContext().getApplication();
    }
    
    public String execute() {
        request.put("r1", "r1");
        session.put("s1", "s1");
        application.put("a1", "a1");
        return SUCCESS;
    }
}
页面使用有两种 jsp语法和struts ongl语言  而#attr.a1是在所有容器中搜索,一般不用,因为key有可能会重复:
    <br />
    <s:property value="#request.r1"/> | <%=request.getAttribute("r1") %> <br />
    <s:property value="#session.s1"/> | <%=session.getAttribute("s1") %> <br />
    <s:property value="#application.a1"/> | <%=application.getAttribute("a1") %> <br />
    <s:property value="#attr.a1"/><br />
    <s:property value="#attr.s1"/><br />
    <s:property value="#attr.r1"/><br />
    <s:debug></s:debug>
    <br />

9.设置多个struts.xml包含在改文件中。
  例如:
  在struts.xml中代码为:
<struts>
    <constant name="struts.devMode" value="true" />
    <include file="struts1.xml" />
</struts>

10.在xml中找不到action名字的时候,默认调用一个action  设置方法:
    <package name="default" namespace="/" extends="struts-default">
        <default-action-ref name="index"></default-action-ref>
        <action name="index">
            <result>/default.jsp</result>
        </action>
    </package>
11.action result Type:
   例子:
   <struts>
    <constant name="struts.devMode" value="true" />
    <package name="resultTypes" namespace="/r" extends="struts-default">
        <action name="r1">
            <result type="dispatcher">/r1.jsp</result>
        </action>
        
        <action name="r2">
            <result type="redirect">/r2.jsp</result>
        </action>
        
        <action name="r3">
            <result type="chain">r1</result>
        </action>
        
        <action name="r4">
            <result type="redirectAction">r2</result>
        </action>
        <!-- 访问包-->
        <action name="r5">
         <result type="chain">
            <param name="actionName">r1</param>
            <param name="namespace">/rr</param>
        </result>
        </action>
    </package>
    <!-- 访问包-->
     <package name="rr" namespace="/rr" extends="struts-default">
        <action name="r1">
            <result type="dispatcher">/r3.jsp</result>
        </action>
    </package>
</struts>

12.根据方法中的返回选取result:
   <result name="error">/user_error.jsp</result>
13.动态结果一定不要忘了为动态结果的保存值设置set get方法
   struts.xml如下:
   <struts>
    <constant name="struts.devMode" value="true" />
    <package name="user" namespace="/user" extends="struts-default">
        
        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
            <result>${r}</result>
        </action>        
    </package>
        
</struts>
   相对应的类如下:
   package com.bjsxt.struts2.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
    private int type;
    
    private String r;

    public String getR() {
        return r;
    }

    public void setR(String r) {
        this.r = r;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    @Override
    public String execute() throws Exception {
        if(type == 1) r="/user_success.jsp";
        else if (type == 2) r="/user_error.jsp";
        return "success";
    }

}

14.传参数到页面(需要ognl-2.6.11.jar包):
   <struts>
    <constant name="struts.devMode" value="true" />
    <package name="user" namespace="/user" extends="struts-default">
        
        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
            <result type="redirect">/user_success.jsp?t=${type}</result>
        </action>        
    </package>
        
</struts>
  页面:
  <s:property value="#parameters.t"/>
 
15.ognl学习:
访问的url:http://localhost:8088/StrutsDemo1/ognl.action?user.age=321
<li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
<li>访问值栈中action的普通方法:<s:property value="m()" /></li>
<li>访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
<li>访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
<li>访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
<hr />
<li>访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
<hr />
<li>访问List:<s:property value="users"/></li>
<li>访问List中某个元素:<s:property value="users[1]"/></li>
<li>访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
<li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
<li>访问Set:<s:property value="dogs"/></li>
<li>访问Map:<s:property value="dogMap"/></li>
<li>访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
<li>访问Map中所有的key:<s:property value="dogMap.keys"/></li>
<li>访问Map中所有的value:<s:property value="dogMap.values"/></li>
<li>访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>

<li>投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
<li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
<li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
结果如下:
22.投影(过滤):user1
23.投影:[2]
24.投影:[3]
25.投影:false
--------------------------------------------------------------------------------
<li>property: <s:property value="username"/> </li>
<li>property 取值为字符串: <s:property value="'username'"/> </li>
<li>property 设定默认值: <s:property value="admin" default="管理员"/> </li>
<li>property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
<hr />
<li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName1" value="'xxxxx'" /></li>

<li>set 从request取值: <s:property value="#request.adminName1" /></li>
<li>set 从ActionContext取值: <s:property value="#adminName1" /></li>

<%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li>
<li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %></li>
--%>
<li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="request"/></li>
<li>set 从相应范围取值: <s:property value="#request.adminPassword"/> </li>
<li>set 使用#取值xxxxxx: <s:property value="#request.adminPassword"/> </li>

<li>bean 定义bean,并使用param来设定新的属性值:
            <s:bean name="com.bjsxt.struts2.tags.Dog" >
                <s:param name="name" value="'pp'"></s:param>
                <s:property value="name"/>
            </s:bean>
</li>

<li>bean 查看debug情况:
            <s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
                <s:param name="name" value="'oudy'"></s:param>
            </s:bean>
            拿出值:
            <s:property value="#myDog.name"/>
</li>

<li>include _include1.html 包含静态英文文件
<s:include value="/_include1.html"></s:include>
</li>
<li>include _include1.html 包含静态英文文件,说明%用法
<s:set var="incPage" value="%{'/_include1.html'}" />
<s:include value="%{#incPage}"></s:include>
</li>

<li>if elseif else:                                               
age = <s:property value="#parameters.age[0]" /> <br />        
<s:set var="age" value="#parameters.age[0]" />                
<s:if test="#age < 0">wrong age!</s:if>                       
<s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
<s:else>yeah!</s:else><br />                                  
<s:if test="#parameters.aaa == null">null</s:if>              
</li>

<li>遍历集合:<br />
<s:iterator value="{1, 2, 3}" >
    <s:property/> |
</s:iterator>
</li>    
输出:遍历集合:
       1 | 2 | 3 |

<li>自定义变量:<br />
        <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
            <s:property value="#x.toUpperCase()"/> |
        </s:iterator>
</li>
输出:自定义变量:
       AAA | BBB | CCC |
       
<li>使用status:<br />
        <s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
            <s:property/> |
            遍历过的元素总数:<s:property value="#status.count"/> |
            遍历过的元素索引:<s:property value="#status.index"/> |
            当前是偶数?:<s:property value="#status.even"/> |
            当前是奇数?:<s:property value="#status.odd"/> |
            是第一个元素吗?:<s:property value="#status.first"/> |
            是最后一个元素吗?:<s:property value="#status.last"/>
            <br />
        </s:iterator>
</li>                                     

告别手动脚本!用TSMaster Python小程序5分钟搞定CAN报文自动发送 本文介绍了如何使用TSMaster的Python小程序功能快速实现CAN报文自动发送,大幅提升汽车电子测试效率。通过简洁的Python代码示例,展示了如何替代传统手动操作和复杂C脚本,实现周期性发送、动态修改报文内容等常见需求,帮助工程师5分钟内完成自动化配置。 阅读详情

相关推荐

解决创建conda环境时Solving environment: failed 和 ResolvePackageNotFound 的错误

环境配置文件是在别的机器上导出的,文件里的软件包是按照导出文件的机器配置的,因此导出的时候,把这些包的详细信息也导了出来,即第二个等号后面跟着的信息,当我们按照这个文件创建环境时,conda就会根据我们机器的配置信息,按照配置文件里包的详细信息,去找这个包,那当然找不到,结果发现“查无此包”,因此也就会报上面的错误。上面找到了问题的所在之处,解决起来就很简单了,只需要在配置文件 environment.yml 中将包的详细信息删除,也就是第二个等号后面的内容。然而升级超级慢不说,也没有解决我的问题。...

番茄炒蛋三分糖 4万+

Struts结合马士兵视频的学习经验

目前学了struts的原理 就是将mvc应用到网页上,也就是将业务逻辑,数据,界面分离的组织方式 运行过程: client网页输入地址 | v tomcat调用dofilter()查找web.xml中的filter 然后去找struts.xml中的namespace | v 找到对应action | v 返回result中的结果 我对namespace的理解:na...

weixin_30752377的博客 124

Maxwell参数化建模

MAXWELL 2019 R3 参数化建模 参数化建模的优势 所谓参数化,就是在电机本体设计中涉及到的各类参数变量化,而每个变量之间又存在一定的制约关系,这样只需修改其中某个或者某些变量就可以做到对整个电机模型合理地改动。 参数化举例 以表贴式电机为例,先画电机定子,如上所示,依次进行后会弹出下面的选项框 上图就是描述电机尺寸的各类参数,接下来进行参数化。 回车ENTER,并给变量ds赋值。 赋值好后,回车ENTER 左下角properties里面就有我们新建立的变量ds了。 继续将剩余的参数

qq_41387280的博客 1万+

Struts-初级篇-Struts的运行机制浅谈

注:本文参考马士兵Struts 视屏教程编写 一、Struts 的运行机制 1.当用户在地址栏中输入了URL地址时,URL的请求会通过Http协议发送给服务器。 服务器收到请求后,查找请求的是什么Web-Application,并找到相应的Web-Application,然后交给此Web-Application去处理 2.找到对应的Web-Application》》去执行web.xml文件,

z_play_du 615

VS2015+Qt+OpenCV+open62541开发过程(05_VS2015中使用OPCUA open62541通过Kepware读写PLC数据)

此外还需要所需lib包:WS2_32.Lib(opcua通讯用到的库,opcua使用socket通讯,需使用此库),添加#pragma comment(lib,"ws2_32.lib") 语句,有的文章说需要添加ws2_32.lib文件或ws2_32.dll到项目资源中,貌似影响不大。2.在VS中选择x64平台会报错,选择x86平台可以用,应该是ws2_32.lib相关的库不支持64位,目前没有解决,继续后面的实验,看看用Qt后是否可以解决。6.VS中建立的变量,与读取的OPC点数据类型注意对应。

zzh17的博客 1861

DeepSeek 赋能招投标全流程智能化:多模态解析、知识图谱与投标文件自动生成实战指南(附完整代码与行业案例)

摘要:本文深入探讨DeepSeek技术在招投标领域的全流程智能化应用,通过整合自然语言处理(NLP)、多模态解析、知识图谱等核心技术,实现招标文件智能解析与投标文件自动生成。文中详细解析DeepSeek-R1模型的多模态处理机制、动态知识图谱构建方法及智能模板填充算法,通过完整代码实现展示技术细节。结合广某资源交易平台、山西XX"XX云"等典型案例,验证技术方案在提升招投标效率、降低人为错误方面的显著效果。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1462

马士兵Struts2学习笔记

马士兵Struts2学习笔记 1、02_尚学堂马士兵_Struts2_Struts2_HelloWorld_2.avi   指定Tomcat的目录,指定JDK搭建开发环境(拷贝jar包,复制struts.xml文件 此文件不要放在WEB-INF下面,应该放到src下面   ),在web.xml文件中: struts2 org.apache.stru

wuseyukui的专栏 2983

Xiaojie雷达之路---手把手教你从串口获取雷达原始数据(一)---新建工程(开始)

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章---利用串口获取毫米波雷达中的原始数据,本系列文章将从新建工程到最后原始数据显示到PC上进行逐步介绍,这个系列的文章大约是一个4-5篇左右。本篇文章呢,主要讲的是如何新建一个毫米波雷达的工程。

XiaoJie的博客 5808

马士兵尚学堂Struts2笔记——以及工作机制

目录   l   建立一个Struts2工程... -2 - l   用Action的属性接收参数... -10 - l   使用DomainModel (实体模型)接收参数... -11 - l   Struts2_2.1.6版本的中文问题... -12 - l   Struts模块包含... -12 - l   Struts简单数据验证... 13 l   Str

音符的博客 2590

Hindsight 内存爆炸 4 个词排查清单:9,284 条 6 成是 SSH 调试日志——Agent 标签系统的实战复盘

9,284 条记忆里 66% 是 SSH 调试日志。4 个标签被滥用=0 区分度。3 个 entity_labels + retain_mission + retain_every_n_turns 配置把噪声压回 5%——附 PATCH 脚本和实测前后数据。

Starry-SkyJing的博客 57

全新YOLOv11一文弄懂 | YOLOv11网络结构解读 、yolov11.yaml配置文件详细解读与说明、模型训练参数详细解析 | 通俗易懂!入门必看系列!

本文全面介绍了YOLOv11目标检测算法,包含网络结构解析、yaml配置文件详解及训练教程。YOLOv11通过改进的C3k2f模块、SPPF和C2PSA注意力机制等创新设计,在COCO数据集上实现了比YOLOv8更优的性能。文章详细解读了yolov11.yaml配置文件的参数设置、主干网络(backbone)和头部网络(head)结构,并提供了完整的训练代码示例和参数说明。训练部分涵盖了模型选择、参数设置及优化技巧,包括epochs、batch size、学习率等关键参数的调整建议。最后总结了YOLOv11

Ai缝合怪、助力小伙伴高效发论文 3万+

马士兵老师Struts2学习笔记

1、namespace = "" 处理的是找不到对应的namespace的所有情况 比如有一个package, namespace = "/top" result为/index.jsp 有一个package, namespace = "" result为/index.jsp 如果我敲/bottom/index.jsp,没有对应的namespace, 那么...

LyamAL的博客 358

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

struts2学习笔记——马士兵视频版

在文件当中 是当该文件的mapping修改时,不用重启服务器,即可生效。devMode开发模式。   /********过滤器类的源代码在Struts2的src/core/src/main/java当中,选中项目,右键properties,*****/   建立jar文件对应的源码D:\tool\struts-2.3.4包\struts-2.3.4\src\core\src\main\j

funi16的专栏 1850

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Struts2 学习笔记(马士兵)

前言 假 如 你 的 人 生 有 理 想,那 么 就 一 定 要 去 追,不 管 你 现 在 的 理 想 在 别 人 看 来是 多 么 的 可 笑 , 你 也 不 用 在 乎 , 人 生 蹉 跎 几 十 年 , 如 果 年 轻 的 时 候 计 较 得 失 前 怕 狼 就 后 怕 虎 而 不 去 追 逐, 等 到 了 40, 50 岁 的 时 候 , 你 唯 一 能 做 的 就 是 感 叹 岁

Ai大模型,odoo,idempiere,metasfresh,低代码,ecshop数据采集发布接口,zencart,lightinthebox,shopex 数据采集接口 2261

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

马士兵struts2学习笔记(详细版)

1、02_尚学堂马士兵_Struts2_Struts2_HelloWorld_2.avi   指定Tomcat的目录,指定JDK搭建开发环境(拷贝jar包,复制struts.xml文件 此文件不要放在WEB-INF下面,应该放到src下面  ),在web.xml文件中:        struts2         org.apache.struts2.dispatcher.ng.fil

wtfpewfn的专栏 1167

第三:马士兵Struts2 视频学习笔记之路径问题

尽量不要使用相对路径,使用绝对路径 应用: &lt;% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %&gt;   此时basePat...

xiaojin111的专栏 139

第二:马士兵Struts2 视频学习笔记之struts.xml文件中的action

1. struts.xml文件package标签的namespace 决定了action 的访问路径,默认为“”,可以接收所有路径的actuon,   或者可以写成“/”或者“/XX”等等。   2. struts.xml文件package标签的name属性,和一般的java项目中的package类似,在这里是区分action,防止命名重名的情况。  namespace属性 如果写成n...

xiaojin111的专栏 173

第四:马士兵Struts2 视频学习笔记之action类DMI

在action标签中有class属性时,会调用该类中的execute方法,但是也可以不调用execute方法而调用其他的方法,可以再action标签中指定,通过method属性 &lt;action name="hello" class="com.xiaojin.ActionClass" method="invoted"&gt; ......   &lt;/action&gt;   ...

xiaojin111的专栏 164

第六:马士兵Struts2 视频学习笔记之参数传递

在action中接受参数的方法一共有三种: 第一种,在url中传参,只用action 的属性。 比如想传入两个参数name和age,可将url写为: http://jrwasob5iy4opd5:8080/Struts2-helloworld/stu!add?name=xiaojin&amp;age=24   对应的action标签为:   action对应的类为:  可以看到...

xiaojin111的专栏 208

第七:马士兵Struts2 视频学习笔记之访问Web元素

主要是访问request,session,application。 分别继承RequestAware,SessionAware和ApplicationAware接口,并分别实现他们的setter方法。 这种方法时主要用的最多的方法,使用的思想是依赖注入或者是控制反转。 ...

xiaojin111的专栏 152

Sruts2 学习笔记(马士兵教程 struts2.1.6版本) 第三天

前两天看视频的时候, 不是很适应看视频做笔记的方法,笔记有些混乱,今天开始,每日整理笔记发上来,以示自己对自己的督促,也供正在学的同学们互勉。 我写出来的东西语句常常特别通俗,出现“东西”之类的词,望见谅。 如果里面有出现BUG,也就是我的理解错误,希望偶然看到的路人能顺便指出 绿色字为教学路线和纲要,由教程提供(后面笔记也如此) Struts-Tags 1.

雷雨中的双桅船 3068

第五:马士兵Struts2 视频学习笔记之用通配符做配置将配置量降到最低

比如现在有一个action标签 &lt;action name="student*" class="com.xiaojin.Student" method="{1}"&gt;   此时收到一个URL地址请求,地址为............/space/studentAdd 表示要访问space这个namespace下的studentAdd 这个action,但是struts.xml文件...

xiaojin111的专栏 149

Sruts2 学习笔记(马士兵教程 struts2.1.6版本) 第五天

==准备开始看hibernate Struts拦截器以及源码解析 1.         Struts架构图 a)         见文档 2.         Struts执行过程分析 3.         Interceptor拦截器过程模拟 4.         定义自己的拦截器 a)         acegi – spring security 5.

雷雨中的双桅船 2863
上一篇: 获取MyEclipse的破解码
下一篇: 2011年中国程序员薪水调查报告
cheneystudy
博客等级 码龄16年 49粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值