Struts2之命名空间与Action的三种创建方式
看到上面的标题,相信大家已经知道我们接下来要探讨的知识了,一共两点:1、package命名空间设置;2、三种Action的创建方式。下面我们开始本篇的内容:
首先我们聊一聊命名空间的知识,namespace决定了action的访问路径,默认为"",可以接受所有路径的action,namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action,namespace最好也用模块来进行命名。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default">
<action name="user" class="com.edu.action.User" method="login">
<result>/success.jsp</result>
</action>
</package> <!-- Add packages here --> <package name="hello" namespace="/hello" extends="struts-default">
<action name="login" class="com.edu.action.Hell" method="login">
<result>/hello.jsp</result>
</action>
</package> </struts>
做过开发的朋友一定都知道package包的作用,这里的name使用了唯一标示package的名称,namespace则就是本篇我们要一起探讨内容,决定了我们访问的路径。以上两个action的访问路径分别为:http://localhost:8080/Struts/user与http://localhost:8080/Struts/hello/login
下面我们一起来探讨一下action的三种创建方式:分别为一般Class类、实现Action接口、继承ActionSupport类,下面我们一起来探讨一下。
第一种方式:
public class User1 {
public String execute(){
System.out.println("Action1");
return "success";
}
}
第二种方式:
public class User2 implements Action {
public String execute() throws Exception {
System.out.println("Action2");
return "success";
}
}
第三种方式:
public class User3 extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("Action3");
return SUCCESS;
}
}
关于Struts的1、package命名空间设置;2、三种Action的创建方式介绍就结束了,后续内容持续更新中。。。
Struts2之命名空间与Action的三种创建方式的更多相关文章
- Action的三种实现方式,struts.xml配置的详细解释及其简单执行过程(二)
勿以恶小而为之,勿以善小而不为--------------------------刘备 劝诸君,多行善事积福报,莫作恶 上一章简单介绍了Struts2的'两个蝴蝶飞,你好' (一),如果没有看过,请观 ...
- Action的三种编写方式
-------------------siwuxie095 Action 的三种编写方式 在 Struts2 的应用开发中,Action 作为框架的核心类,实现 对用户请求的处理,Action 类被称 ...
- Django-多对多关系的三种创建方式-forms组件使用-cookie与session-08
目录 表模型类多对多关系的三种创建方式 django forms 组件 登录功能手写推理过程 整段代码可以放过来 forms 组件使用 forms 后端定义规则并校验结果 forms 前端渲染标签组件 ...
- Django框架(十)--ORM多对多关联关系三种创建方式、form组件
多对多的三种创建方式 1.全自动(就是平常我们创建表多对多关系的方式) class Book(models.Model): title = models.CharField(max_length=32 ...
- 多对多三种创建方式、forms组件、cookies与session
多对多三种创建方式.forms组件.cookies与session 一.多对多三种创建方式 1.全自动 # 优势:不需要你手动创建第三张表 # 不足:由于第三张表不是你手动创建的,也就意味着第三张表字 ...
- 多对多的三种创建方式-forms相关组件-钩子函数-cookie与session
多对多的三种创建方式 1.全自动(推荐使用的**) 优势:第三张可以任意的扩展字段 缺点:ORM查询不方便,如果后续字段增加更改时不便添加修改 manyToManyField创建的第三张表属于虚拟的, ...
- JavaScript 闭包的详细分享(三种创建方式)(附小实例)
JavaScript闭包的详细理解 一.原理:闭包函数--指有权访问私有函数里面的变量和对象还有方法等:通俗的讲就是突破私有函数的作用域,让函数外面能够使用函数里面的变量及方法. 1.第一种创建方式 ...
- 2019年6月14日 Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller ...
- Django多对多表的三种创建方式,MTV与MVC概念
MTV与MVC MTV模型(django): M:模型层(models.py) T:templates V:views MVC模型: M:模型层(models.py) V:视图层(views.py) ...
随机推荐
- Linux下MySQL开放root的远程访问权限
mysql默认只能从本地连接,所以要使root可以远程访问登录,需做如下设置: 1.授权 请使用以下命令 mysql> Grant all privileges on *.* to 'root' ...
- 在Eclipse中查看Javadoc文档
当我们需要查看JDK中类的API介绍时,通常采用的方式是直接查看离线文档或者某些网站提供的在线文档.如下图: 而本文档最终达到的效果是,不需要切换出eclipse,直接在eclipse中查看JDK的J ...
- Visual Studio快捷键大全
快捷键的使用可以简化大家的操作,在一定程度上提高工作的效率,下文中将为大家介绍一些VS中经常用到的快捷键,希望对大家有用. 方法/步骤 关于解决方案和项目 用于快速跳转 用于代码的文本编辑 ...
- 【转】细谈Redis和Memcached的区别
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支 ...
- yum 安装nginx
1.下载一个rpm包 wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noar ...
- 第六种方式,python使用cached_property缓存装饰器和自定义cached_class_property装饰器,动态添加类属性(三),selnium webdriver类无限实例化控制成单浏览器。
使用 from lazy_object_proxy.utils import cached_property,使用这个装饰器. 由于官方的行数比较少,所以可以直接复制出来用自己的. class cac ...
- Eclipse------使用Maven install出错:编码GBK的不可映射字符
使用Maven install时报错:编码GBK的不可映射字符 原因:Maven默认使用GBK进行编码 解决方法: 在pom.xml文件中添加如下代码即可 <project> <pr ...
- Java实现非法访问异常
创建ExceptionTest类,在该类的main()方法中,使用反射获得String类的所有域,不要使用setAccessible方法修改这些域的可见性,然后通过反射获得私有域中与”hash”相匹配 ...
- c#事件Unity与.Net对比
今天在看Unity3d的书,发现上面的调用事件比较特殊,比如说按钮事件 该方法写在OnGUI方法中if(GUILayout.Button("按钮1")) { //执行事件的处理 } ...
- vue中使用动态echart图表
<template> <div class="block"> <div class="title">展会实时人流里统计< ...