Unmi的Struts2学习笔记(十一) - 编程入门网
此目录下放一文 件 theme.properties,内容是:
#指定该主题以 xhtml为基础进行扩展 parent=xhml 使用可指定给 UI 标签,例如 <s:form name="aa" theme="custom" ..., 效果就会是 form 下的 select 使用了在 custom 目录下自定义的 select.ftl, 其他的直接使用父主题 xhtml 中的模板文件。Struts2 提供的 ajax 主题就是继 承自 xhtml 主题的。 7. 简单说一下 Struts2 的内建主题,包括 simple、xhtml、css_xhtml 和 ajax。simple 主题不用多说,比Struts1 的 html 标签还弱些,只对应简单的 html 元素,不生成额外内容。xhtml 是默认主题,是对 simple 主题的包装和扩 展(也就是继承),该主题下有一个 head.ftl 用来导入 javascript 类库(如 dojo)。xhtml 在 simple 的基础上增加了以下特性: 1) 针对 HTML 标签(如 textfield和select标签) 使用标准的两列表格布局 2) 每个 HTML 标签有 label 属性,默认左边显示,可通过 labelposition 属性设定位置 3) 自动输出后台校验错误或 javascript 前端校验错误 8. 继续 Struts2 的内建主题的话题。css_xhtml 主题是对 xhtml 的扩展, 显示是加入了 css 样式控制特性。ajax 主题是对 xhtml 主题的扩展,在 xhtml 主题的每个标签增加了 ajax 的支持(以 Djoj 和 DWR 为基础)。所增 Ajax 特性 有: 1) Ajax 方式的客户端校验 2) 远程表单的异步提交 3) 高级 div 标签,允许局部更新 4) 高级 a 标签,允许动态加载并执行远端的 javascript 代码。 5) 提供支持 ajax 的 tabbedPanel 6) 提供“富客户端” 模型的 pub-sub 事件模型 9. 先前有网友问过我,他用了 Struts2 的校验,但是错误输出是在输入框的 上方,但希望错误信息是显示在输入框的右方,该如何做。当时我只告诉了他要 修改模板文件,也只是大概告诉了他是在某个 template 目录下的一个 ftl 文件 ,因那时具体操作自己也不太清楚。现在知道了线索,但实际修改还是很麻烦的 。 输入框 <s:textfield .../> 默认是用的 xhtml/text.flt 模板, text.ftl 包装了 smple/text.ftl,错误信息可以追溯发现是在 controlheader -core.ftl 中定义显示的,所以你可以把 xthml/text.ftl 和 controlheader- core.ftl 拷到 WEB-INF/classes/template/xhtml 目录中进行修改,WEB- INF/classes/template/xhtml 中的模板文件是优先于 struts2-core-2.x.x.jar 里的 template/xhtml 目录中的模板文件加载。 10. 看有些地方只笼统介绍说:所有表单元素都存在一个特殊的属性:form, 这个属性引用元素所在表单,通过该属性实现表单元素与表单间的交互,例如可 通过 ${parameters.form.id} 访问表单的 ID。对这句话我只是感到一头雾水, 查看像 <s:textfield .../> 等标签并无 form 属性,用 <s:textfield value="${parameters.form.id}" name="aa"/>也看不到输 出所在表单的 ID。去网上找找,才知道前面那句话有出入,其实说的是在主题模 板文件里的用法,打开一些主题模板文件,如 combobox.ftl 或 controlheader -core.ftl 文件,你就能看到许多的 parameters 的表示法-- parameters.required、parameters.id。想见一下 parameters 属性才是根本, 它代表了表单元素的属性集,parameters 说来还有点像 this,this.id、 this.form.id、this.required 等等... |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |