`
zengshaotao
  • 浏览: 754306 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts1

 
阅读更多

model2就是mvc的应用,
model1的核心是jsp开发方式,model2从jsp中分离出了业务逻辑的代码.对其功能代码进行了抽取和分离.

 

mvc两种驱动方式:
面向请求驱动,面向事件驱动(jsf).

中央控制器,截获所有的请求,分析url,然后根据请求进行分发.

动态actionform的出现是为了防止标准actionform膨胀而设计的.他具备标准actionform的所有功能.

动态actionform就不用自己写form了,但是还是需要在struts-config.xml文件里进行配置,用form-bean标签.type是包装类

 


locale 读取国际化文件,由操作系统决定.

ResourceBundle 读取国际化资源文件.

转化有中文的国际化资源文件的时候需要保证本地的操作系统语言是中文的状态.

资源文件默认从src开始搜索.如果有目录层次,需要加上目录结构,之间只用.分隔即可.

硬编码是写在页面上相对固定的信息.除此之外还有动态生成的信息.

通过<bean:message标签来读取国际化资源消息.

 

是一个基于mvc模式的框架。
spring提供一些基础性的服务,提供了声明式事务

领域模型domain model,一个核心的内容。共同遵照的
要求或标准
DDD,领域驱动设计。只要状态没有行为称为贫血模型

模式,代码级的模式,单例模式。还有架构级上的模式
rbac基于角色管理的模式


框架,即一些基础性的设施,主要是给开发人员的使用的,增加了规范性

struts1处于UI层,即表示层。C/S以数据库为中心。b s结构可以称为瘦客户端
可以将业务逻辑放在存储过程里实现,性能比较好,
但是移植性不怎么好,因为数据库是不一样的。
spring提供了事物管理。
struts1比较简单和经典

新建web项目
整体改变jsp页面的默认编码

首先在webroot目录下建立index.jsp页面
webroot/a/a.jsp
复写service的时候,get或者post方法都可以提交过来 
页面上的表单是为了获得服务器端的服务。也就是前台和后台因为此进行了交互。
在servlet里进行设置req.setAttribute();然后再转向
/a/b/c/c.jsp表示从根目录开始找。
根目录,就是web工程的webRoot目录
我们写的servlet必须通过web.xml文件的配置才能测试成功
model2在model1的jsp页面提取出了一个c。
通过一个类来获得所有请求,然后进行分发,这也是mvc实现的
基本原理
由中央控制器进行统一转换,action只是返回了一个字符串。
收集用户提交的数据时需要新建一个继承了ActionForm类的类
actionmapping存储了struts-config的相关配置信息
面向事件驱动的 jsf

struts标签是在服务器端运行的,单引号与双引号可以混用


软件工程还处于不断的发展阶段。没有统一的开发模式。

web项目开发的一般流程
1。需要确定
通过各种手段确定系统的功能与性能。
功能:购物,浏览,注册,搜索。。。。
性能:可同时支持多个并发访问,并且相应时间不能高于m毫秒
手段:头脑风暴,会议,询问(问问题的时候需要做最充分的准备),原型-界面原型、业务原型
记住,洁癖,很可能是一个人的缺点
本阶段是项目开发的最重要阶段。
在web项目中,通常界面设计会在本阶段进行。
2。分析与设计
 架构分析与设计
 业务逻辑分析
 业务逻辑设计
 界面设计
 3。开发环境搭建
 4。开发-测试-开发-测试
 5。文档编撰

 


actionform 会自动进行数据类型的转换.收集数据的时候

 

标签代替了一些脚本.封装性较好,重复性也较好.利用分层开发.
<bean:write>

Myeclipse更改根路径名称.

Struts标签的配置和使用,和国际化紧密联系
首先在struts-config.xml文件中加入
<message-resources parameter="MessageProperties">

将src下的MessageProperties属性文件拷贝到struts-config.xml文件里.

超链接也可以配置struts的action请求.

struts已经布置好了标签,所以使用的时候需要使用taglib指令进行引入.<% taglib prefix="" uri=""%>

<bean:write name="设置过属性的key值">标签在服务器端运行,客户端拿到的是服务器端返回的值.

filter属性为true时表示html标签也按文本处理.

<bean:write name="today" format="yyyy-MM-dd">today是在request里set过的

format="###,###.###"
format="###,###.0000"不够位数就补零

<bean:write name="<bean:write name="user" property="username">">

 

继承Action,需要复写execute方法
<前缀:empty name="">相当于if

<logic:empty name="aa">
 aa为空

</logic:empty>

<logic:present>存在的标签判定.

不存在,还是会进入为空的标签判断里.

action的path配置前必须有/

 

测试迭代:

shift在中英文输入法之间进行切换.

List l =new ArrayList();

for(;;){

l.add();

for(Iterator it  =list.iterator();it.hasNext();){

  user u = (user)it.next();

<logic:empty name="list">

 <logic:iterater id="u" name="list">
</logic:empty>


action是业务控制器.actionservlet是中央控制器,负责获取所有配置的请求.struts主要实现了c.数据收集也是做了很多工作的.这里主要的作用就是取数,然后调用业务模型层.


底层的异常往外抛,在action层进行捕捉,转换成用户能识别的异常提示信息.比如密码不能为空,或不正确等.

 

el表达式只要求servlet2.4以上,不依赖框架.不依赖任何包.

jstl和struts没有任何关系. 和el表达式没有关系.

${hello}hello是设置过的属性的值.从page范围开始找,直到最高级.影响效率.我们可以直接指定搜索顺序.如sessionscope.hello

${aaa[2]}

${aa.key1}输出集合里的数据

${1+2}
${10/5}==${10 div 5}

jstl是另一套标签库的定义,不依赖其他框架.

struts有自己的页面显示标签.


jstl=jstl标签库+el表达式  sun制定标准.apache作了一个实现.

jstl必须支持j2ee1.4、jsp2.0以上.容器太低就需要在web.xml文件里配置.

使用jstl标签需要拷贝指定的jar文件到lib目录下.


标签库使用的时候需要使用taglib指令,并加入uri

<c:out value="${hello}"> 当为空值时可以输出默认值 通过default属性.

escapeXML属性表示是否原样输出.false则对html标签进行了解析.

<c:set value="123" var="temp">
<c:remove var="temp">

<c:if test="${v1 lt v2}" var="a">
页面直接输出${a}

可以有多个when,只能有一个otherwise


map里面是一些entiy.有get key  和get value方法

函数只能用在el表达式中

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics