Java Hour 36 Weathre ( 9 ) struts2 – exception
有句名言,叫做10000小时成为某一个领域的专家。姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧。
Hour 35
Exception Handling
直接添加全局性的异常处理的映射,既然是映射就必然在我们的映射配置文件里面。
<package name="basicstruts2" extends="struts-default">
<global-results>
<result name="securityerror">/securityerror.jsp</result>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping
exception="org.apache.struts.register.exceptions.SecurityBreachException"
result="securityerror" />
<exception-mapping exception="java.lang.Exception"
result="error" />
</global-exception-mappings>
<action name="index">
<result>/index.jsp</result>
</action>
<action name="hello"
class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
如上所述,在配置文件里面加入全局的异常映射。
插入指定action 的异常处理
<action name="actionspecificexception" class="org.apache.struts.register.action.Register"
method="throwSecurityException">
<exception-mapping
exception="org.apache.struts.register.exceptions.SecurityBreachException"
result="login" />
<result>/register.jsp</result>
<result name="login">/login.jsp</result>
</action>
增加日志功能,这里使用的是拦截器
继续输入的验证功能
这里使用Struts2 自带的xml 配置文件验证功能。
一些基本的验证功能已经自带了,这个可以留待过会儿practice.
通配符
如果没有通配符,这个action 文件将会迅速的膨胀到一个令人发指的地步。
所以这里必须的。
<action name="createPerson"
class="org.apache.struts.tutorials.wildcardmethod.action.PersonAction"
method="create">
<result name="input">input.jsp</result>
<result name="success">view.jsp</result>
</action>
<action name="editPerson"
class="org.apache.struts.tutorials.wildcardmethod.action.PersonAction"
method="edit">
<result name="input">input.jsp</result>
<result name="success">view.jsp</result>
</action>
基本的CURD 操作这里需要写大概4个映射,每个都这样写要疯了的。
<action name="*Person"
class="org.apache.struts.tutorials.wildcardmethod.action.PersonAction"
method="{1}">
<result name="success">view.jsp</result>
<result name="input">input.jsp</result>
</action>
使用通配符以后,这个世界就妥妥的啦。
What’s The Next ?
感谢官方站点提供的入门:http://struts.apache.org/release/2.1.x/docs/tutorials.html
接下去正式将这些学习的知识点发挥作用的时候了。
继续我们未完成的Weather 页面。
这些知识最基本的教程,让我们明白大概的struts2 组织结构,后续的有annotation 之类的可以更优雅的方式实现相同的功能,让我们先使用我们已经拥的的成果学以致用,而后再来改进。
Java Hour 36 Weathre ( 9 ) struts2 – exception的更多相关文章
- struts2 java.lang.StackOverflowError org.apache.struts2.json.JSONWriter
1. 问题描述: 页面通过异步访问action, action的方法通过map封装数据,struts的result的type设置为json,后台报错 六月 25, 2016 6:54:33 下午 ...
- java核心技术-(总结自杨晓峰-java核心技术36讲)
1. 谈谈你对java平台的理解 首先是java最显著的两个特性,一次写入处处运行:还有垃圾收集器gc,gc能够对java内存进行管理回收,程序员不需要关心内存的分配和回收问题 然后谈谈jre和jdk ...
- java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter /struts2.1.3以前版本和之后版本区别/新版Eclipse找不到Java EE Module Dependencies选项
严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apache.struts2.dispatcher ...
- Java后台处理框架之struts2学习总结
Java后台处理框架之struts2学习总结 最近我在网上了解到,在实际的开发项目中struts2的使用率在不断降低,取而代之的是springMVC.可能有很多的朋友看到这里就会说,那还不如不学str ...
- zookeeper_service 出错 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException
2016-12-18 08:28:07 ContextLoader:358 ERROR - Context initialization failed java.lang.NoClassDefFoun ...
- java.lang.NullPointerException org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69)
采用SSH框架时出现了 java.lang.NullPointerException org.apache.struts2.impl.StrutsActionProxy.getErrorMessage ...
- java异常——RuntimeException和User Define Exception
1.RuntimeException public class RuntimeException { public static void main(String[] args) { // TODO ...
- Kafka中错误:Unrecognized VM option ‘UseCompressedOops’ Error: Clould not create the Java Vritual Machine. Error: A fatal exception has occurres . Program will exit.
错误的描述: 在kafka安装目录下,执行 $ bin/zookeeper-server-start.sh config/zookeeper.properties & Unrecognized ...
- 错误:java.lang.NoClassDefFoundError: com/project/common/exception/ServiceException 的解决
问题: 项目编译通过,启动报错误信息java.lang.NoClassDefFoundError: com/project/common/exception/ServiceException. 解决方 ...
随机推荐
- RSA算法小记
学习来源:http://www.cnblogs.com/vamei/p/3480994.html 小记: 一.数学基础: 欧拉Phi函数:Φ(n)=总数(从1到n-1中与n互质的整数) (1)欧拉定理 ...
- 部署在IIS上的网站如何调试
引言 今天突然有个朋友问我,总听同事说在IIS中如何如何调试,到底如何调试呢?没办法,人家刚入门,还是亲手给他操作了一遍.也记录一下,希望能帮到那些不知道的孩纸. IIS中的网站调试 调试最常见的一般 ...
- yum使用本地源
cache: [k2e喜]: 注意它的发音: 不是: keik the attribute could not be removed from the cache. 不能从缓存删除属性. YUM对服务 ...
- 第14章 使用DHCP动态管理主机地址
章节简述: DHCP协议服务能够自动化的管理局域网内的主机IP地址,有效的提升IP地址使用率,提高配置效率,减少管理与维护成本. 学习dhcpd服务程序的使用方法并逐条讲解配置参数,完整演示自动化分配 ...
- 如何修改git的当前登录信息
(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) 之前用的大师的git登录名,后来开通了自己的,需要换成自己的,其实修改方式很简单. $vim .gi ...
- Delphi开发Windows服务程序
开发步骤: 1.New->Other->Service Application 2.现在一个服务程序的框架已经搭起来了 打开Service1窗口,有几个属性说明一下: AllowPause ...
- java 异常处理 Throwable Error 和Exception
Java异常类层次结构图: 异常的英文单词是exception,字面翻译就是“意外.例外”的意思,也就是非正常情况.事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误. 比如使用 ...
- Find Leaves of Binary Tree
Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves ...
- 推荐一篇java抽象类和接口区别的文章
写的不错,http://dev.yesky.com/436/7581936.shtml
- iOS7 中的JavaScriptCore简单介绍
以前写过一篇介绍如何使用第三方库在ios上进行js和oc交互调用的文章,链接如下 iOS 使用UIWebView把oc代码和javascript相关联.当时建立项目时,仍然是ios6时代,所以没有原生 ...