Java-strurs总结
这里是自己对自学的struts2 的一个整体 的脉络进行的一个概括,需要学习哪些东西,注重哪些东西:
struts2 是主流框架SSH 中的一个"S" ,准备MVC开发标准的一个框架,strtus2 在MVC框架中充当“C”层,也就是控制器部分,
主要功能:实现界面和逻辑代码的分离 (请求和视图分离)(显示和调用分离)
学习大纲:
Action :
Result:
OGNL和valueStack:
Taglib:
Action :
1. Namespace 想当与包名,用来区分相同的Action名
2.定义Action
3.路径Path 指定basePath
4. Action 自定义 继承ActionSupport类,这个工具类封装了很多方法
5.DMI(Dynamic Method Invocation ) 动态的方法调用,不仅限与内置的excute()方法
6.通配符 通过通配符, “*” 能够实现对action配置文件的简化,
7.接收参数(3种方式)
<1> 直接通过action的属性进行接收,直接在action中定义相同名的属性,进行接收(可利用率低)
<2> 通过DomainModel 域接收,new一个对象,接收对象,通过传入对象的属性,去取出得到的对象的属性就是传入的值,这样,目标明确,针对性强,通常直接new bean对象就行了, 不过,如果遇到那种“输入密码和重复输入密码的问题的时候”,就需要建立一个vo.do.dto进行接收后转换了再传给DomainModel
<3> 通过ModelDriven 模型驱动进行接收,实现驱动模型接收,少用
8.中文乱码问题
配fitler中的i18n一般就能解决接收参数的中文乱码问题,不过,这里的fitler问题很奇怪,详情参见以前的一篇文章
9.数据验证
数据验证,如果出错,可以返回一个错误的标识符,然后在jsp页面进行显示,
这里调用的是值栈里面的值,所以能够直接的取得
10.值栈
11.访问web元素
<1> Map方式,通过复制传递
ActionContext.getContext().getSession().put("name","sunzhiyan");
<2> 泛型,实现接口(IOC)
private Map<String , Object> request;
get set 方法
request.put("name","sunzhiyan");
<3> 直接拿
ServletActionContext.getRequest().setArrribute("name","sunzhiyan");
<4> 依赖注入 很少用
Result:
1.type
Dispatche 是服务器跳转 Redirect 是客户端跳转 Chain 服务器跳转到Action RedirecAction 客户端跳转到Action
2.全局结果集
有时候如果验证错误,需要跳转到错误页面的似时候,不会一个个的去配置action,就直接定义一个公共的action专门用来导向错误页面,这里就涉及到全局结果集
<global-results> <result name="error">/404.jsp</result> </global-results>
如果涉及到跨包的问题的时候,需要用到<parm>标签,进行跨包的处理
OGNL和valueStack:
OGNL:
是一种存取对象的属性,调用对象的方法。
OGNL能访问静态方法,访问复杂对象,访问List,Map
是从Action在数据的现实页面取得数据的一种方法,记住只有传值才会初始化构造方法,因此构造方法需要重载一个空的
值栈:
valueStack:
ActionStack:
,一个轻量级的内存数据中心,分为值栈和栈上下文,取上下文的东西需要用“#”
Taglib:
数据标签:
property: 从值栈中取值
set: 设置值
push:
date: 时间的出入格式,自带格式住转换
bean:
debug: 看值栈中的内容
url:
a:
include: 包含标签,不过一般不怎么用
param:
控制标签:
if elseif else: 控制标签
iterator: 迭代标签
append:
generator:
UI标签不怎么用:
Java-strurs总结的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- QQ 群也能接收告警啦!团队沟通力 Up Up!
截止到昨天,你已经可以通过 OneAlert 的「排班」和「分派」功能,来对告警进行有序地分发,解决团队协作效率低的问题了.然而 OneAlert 觉得自己还可以更进一步,把团队沟通困难的问题也解决掉 ...
- 三大框架SSH(struts2+spring+hibernate)整合时相关配置文件的模板
最近在学SSH三大框架的整合,在此对他们整合时相关配置文件做一简单的模板总结,方便以后复用! 首先是web.xml配置文件,这里面就配置一些简单的监听器.过滤器,包括spring核心配置文件appli ...
- Initializing Spring root WebApplicationContext
最近 我部署ssh项目的时候经常出现这样的问题,我的解决办法是 log4j:WARN No appenders could be found for logger (org.springframewo ...
- C++ Unicode SBCS 函数对照表,以备日后查阅(很全)
C++ Unicode SBCS 函数对照表,以备日后查阅 Generic SBCS UNICODE TCHAR char wchar_t _TEOF EOF WEOF _TINT int wint_ ...
- Android学习之 UI效果
探究Android的多分辨率支持以及各种类型图标尺寸大小 - CSDN 各种数字提醒控件-Android 代码仓库-eoe Android ViewBadger - 开源中国社区 Android 微信 ...
- 重构第三天:提升方法&下移方法
如果两个子类拥有相同的方法,把它们移动到超类中来 Warning! 但是从子类到父类移动方法的时候要注意, 不要过度采用这种方法,否则会出现继承滥用的情况.如果一个父类A有多个方法,假设m1, m2方 ...
- (转载)prepare函数的学习,我要学习php第二天
(转载)http://www.boyuan78.com/htm/company/2012_1030_60.html prepare函数的学习,我要学习php第二天 $mysqli = new mysq ...
- 高效的TCP消息发送组件
目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能分布式应用所必需的.为此我结合多年的底层开发经验开发了一个.net 下的高效TCP消息发送组件.这个组件在异步发送时可以达到每 ...
- 关于View和VIewController的关系和理解
之前看过关老师的视频之后就有写关于视图切换的程序,不过那是很久之前了,那时候也不知道什么是View,什么是VIewController,就知道照着写.这次项目的时候,我又碰到了这个问题,我自以为比较能 ...
- Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1694 Solved: 635[Submit][Statu ...