您的位置:首页 > 编程语言 > Java开发

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

2012-02-20 22:44 246 查看
前两天看视频的时候, 不是很适应看视频做笔记的方法,笔记有些混乱,今天开始,每日整理笔记发上来,以示自己对自己的督促,也供正在学的同学们互勉。

我写出来的东西语句常常特别通俗,出现“东西”之类的词,望见谅。

如果里面有出现BUG,也就是我的理解错误,希望偶然看到的路人能顺便指出

绿色字为教学路线和纲要,由教程提供(后面笔记也如此)

Struts-Tags

1.         通用标签:

a)         property

b)         set

                         i.              默认为action scope,会将值放入request和ActionContext中

                       ii.              page、request、session、application

c)         bean

d)         include(对中文文件支持有问题,不建议使用,如需包含,改用jsp包含)

e)         param

f)          debug

2.         控制标签

a)         if elseif else

b)         iterator

                         i.              collections map enumeration iterator array

c)         subset

3.         UI标签

a)         theme

                         i.              simple xhtml(默认) css_xhtml ajax

4.         AJAX标签

a)         补充

5.         $ # %的区别

a)         $用于i18n和struts配置文件

b)         #取得ActionContext的值

c)         %将原本的文本属性解析为ognl,对于本来就是ognl的属性不起作用

                         i.              参考<s:property 和 <s:include

定义自己的theme

1.         css(覆盖struts2原来的css)

2.         覆盖单个文件

3.         定义自己的theme

4.         实战:

a)         把所有主题定义为simple

b)         fielderror特殊处理

c)         自己控制其他标签的展现

项目开发顺序-以BBS2009的名义

1.         建立界面原型

2.         建立Struts.xml

a)         确定namespace

b)         确定package

c)         确定Action的名称,空的方法

d)         确定Result

e)         将界面原型页面进行修改,匹配现有设置

f)          测试

g)         做好规划!!!!!

3.         建立数据库(或者实体类)

4.         建立Model层

5.         建立Service层(后面讲了Hibernate后再完善)

a)         此时可以使用JUnit进行单元测试了

6.         着手开发

以下为笔记内容(事实上每条笔记都有配上截图 但此处上传文件不易 只取文字)

41 投影:相当于循环查找 “?”是表示查找users这个list里面的对象中,age==1的对象集合 后面跟{0}表示显示第一个查找到的对象 第二行^开头 和第一行含义完全相同但显示的是找到的对象的.{age}第三行表示显示最后一个找到的对象的.{age}

 

42 用中括号访问值栈从栈顶(从上往下)数起的元素

 

43 用如果使用chain在服务器端跳转action的话,会依次把用到的action压入栈

 

44 property里面的value是object类型的变量 如”user.userName”自动解析为ognl语句, 而”  ’  ’  ”单引号里面的东西才是字符串

 

44 s:property default=”” 设默认值 escape=”false”表示不用解析

 

45 <s:set var=”” value = “” scope=””(范围 还有page)> 默认在request 和actionContext中加入一个变量其值为:value里面的东西解析ognl

46 Name= 定义类里面的属性名 value里面是ognl表达式

 

48 在object属性的属性里要强制内容为string 在双引号里面加单引号. 在string属性里面要强制内容为ognl表达式, 在””里面加%{}

 

48 总结 $用于在配置文件中写ognl表达式

 

50 可以java/Editor/ContentAssist中配提示出现的时机 delay时间短一点 提示就可以更快出现

 

51 遍历标签的使用 ognl表达式中{ } 表示集合中间的s:property是拿里面循环的当前的元素

 

51 Var属性 每次遍历到的东西都放在这个变量里面

 

51 Status属性 表示当前遍历到的状态 其中的当前是奇数或是偶数的判断是根据已遍历过的元素个数计算而非数组下表(索引)

 

 51 定义map型的内容要在这之前加”#” key和value之间用: 隔开

Map有名字的情况

可以遍历的东西有上列这些

 

51

Subset 截取子集 上面是从第13个元素开始 截取3个元素 作为一个子集

 

52

此处设置主题类型可以控制每一个页面的主题

 

解决fielderror显示图样固定情况第一种

 

解决fielderror显示图样固定情况第二种 在项目中 自己建一个相同路径 下方一个.ftl

Struts优先使用用户自己定义的样式文件 只要路径名和他所要读取的样式文件的路径名相同就好

 

自己定义自己的主题 mytheme 配置文件修改主题为mytheme

 

除了fieldError以外其他标签只要定义主题为simple 就可以没有全部附加样式

 

最实用的: 1:把所有的主题定义为simple 2: fielderror 用自己的css覆盖

 

56 EXT部署 把这些文件全部copy到webRoot下

 

1.中文编码问题 把出问题的文件 的编码类型改成UTF-8 如下

 

56 EXT用法 查examples

 

57 copy项目的时候记得设置contextRoot

 

57 struts配置的时候有一个特性是追溯上一层下面的action加入我要访问/admin/Category_list 如果我们用/Category_list也是可以访问的但最好不要利用这种特性但是如果出错的时候可以参考这种出错的原因

 

58

利用通配符进行配置action和jsp页面时当页面名称用两个单词无法表述清楚时(如Category-updateInput.jsp 和Category-addInput.jsp)无法使用常用的”*-*”(model名-方法名

)对其进行匹配 采用上面的方法解决: 多配一种result 而这时 页面的/admin/{1} - {2}.jsp的{2}中为”*Input” 匹配其对应方法(总而言之 success 和 input类型result分开)

 

58

做项目的时候先把配置文件(struts.xml)配好了(搭起空架子) 然后再编辑各文件的内容这样就不用搭理各文件之间的跳转了. 先搭建(建立界面原型) 再做项目做好规划很重要!!

 

在每添加一点内容的时候,都可以进行测试.

 

59

应该在项目里面建一个叫sql的文件夹, 存放自己建库用的SQL语句方便别人使用, 部署这个项目同时 在这步导入相应数据库的包 为接下来写Model类做准备

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息