- 浏览: 192222 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
ywbrj042:
互联网项目用处不大
Querydsl有趣的通用查询框架 -
qupei2u:
試過刪了還是不行~
ubuntu,eclipse下svn切换用户的方法 -
huixia0010:
感谢分享,已经转载到了我的博客,并附上了本文链接,非常感谢
php截取等长UFT8中英文混合字串 -
aiou:
mymoola 写道请问能不能在整理一下,看到写着有些代码不要 ...
旁门左道做joomla多级分类一 -
aiou:
imlyj 写道我的不行。有一个方法,可以让之前的用户的密码先 ...
ubuntu,eclipse下svn切换用户的方法
Struts2使用FreeMarker作为其默认的模板技术,因此Struts2对FreeMarker的支持非常良好。因此,为了Struts2应用中使用FreeMarker模板技术,只需要在struts.xml文件中进行简单配置即可。
由于FreeMarker自供的FTL指令的能力非常有限,让我们编写一些相对复杂的界面里有点力不从心。不过不用担心,Struts2已经为我们提供了额外的标签库的支持。
1.要在FreeMarker模板使用标签库,只要四步,如下:
(1)解压struts2-core-X.X.X.jar文件,把在META-INF文件夹下面的struts-tags.tld文件复制到WEB-INF文件夹下。
(2)在web.xml文件中启动JSPSupportServlet.代码如下:
<servlet>
<!-- define a JspSupportServlet Object -->
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<!-- setting JspSupportServlet auto start -->
<load-on-startup>1</load-on-startup>
</servlet>
(3)在FreeMarker模板中使用assign指令导入标签库。代码如下
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] /> 注:这里我把struts-tags.tld放在WEB-INF下面
(4)现在我们可以在FreeMarker模板中使用标签了,示例代码如下:
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<@s.form action="login">
<@s.textfield name="username" label="username"/>
<@s.submit value="login" />
</@s.form >
2.登录示例:
(1)在WEB-INF文件夹下面建立一个名为ftl的文件夹,其实就是FreeMarker容器,我们把所有的ftl文件都放在里面。
现在我们先在下面建立三个名字分别为login.ftl,welcome.ftl,showinfo.ftl的文件。
login.ftl代码如下
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<html>……
<body>
please input username and password login<br>
<@s.form action="Login.action">
<@s.textfield name="username" label="username"/>
<@s.password name="password" label="password" />
<@s.submit value="submit" />
</@s.form >
</body>
</html>
welcome.ftl代码如下:
<html>…WelCome,${username},you logined!<br>
<a href="ShowInfo.action">Show Information</a>…</html>
showinfo.ftl
(2)从上面的ftl中我们可以看出,我们必须建立两个Action。
我是在com.test.action包下建立Action的。
LoginAction.java ShowInfo.java
(3)剩下的就是配置文件啦,也就是struts.xml
代码片段如下:
<!-- 因为浏览者无法直接访问WEB-INF/ftl路径下的资源,所以我们在struts.xml文件中配置下面片段代码。 也就是配置了一个能匹配所有请求的Action,该Action被映射到一个动态Result. -->
<action name="*">
<result type="freemarker">/WEB-INF/ftl/{1}.ftl</result>
</action>
<!-- define a LoginAction -->
<action name="Login" class="com.test.action.LoginAction">
<result name="error" type="freemarker">/WEB-INF/ftl/error.ftl</result>
<result name="success" type="freemarker">/WEB-INF/ftl/welcome.ftl</result>
</action>
<action name="ShowInfo" class="com.test.action.ShowInfo">
<result name="login" type="freemarker">/WEB-INF/ftl/login.ftl</result>
<result name="success" type="freemarker">/WEB-INF/ftl/showinfo.ftl</result>
</action>
以上内容转自:FreeMarker作为Struts2的视图
3、国际化
类似JSP+Struts2的国际化,可参考:Struts2的国际化
(1)准备资源属性文件
baseName_language_country.properties
baseName_language.properties
baseName.properties
(2)Struts2加载全局资源文件
加载全局资源文件的方式是通过配置常量来实现的。(struts.custom.i18n.resources)
具体配置:在struts.properties配置文件中增加以下信息
struts.custom.i18n.resources= baseName(文件名,不含后缀)
(3)访问国际化资源
ftl页面输出:
A:不带占位符的信息加载
login.title=welcome into page
<@s.text name="login.title"/> 用name属性来加载资源文件的key值。
或<@s.property value="%{getText('login.title')}"/>
B:带占位符的信息加载
login.title=welcome {0} into {1} page
<@s.text name="login.title">
<@s.param>hello</@s.param>
<@s.param>index</@s.param>
</@s.text>或
<@s.property value="%{getText('login.title',{'hello','index'})}"/>
C:在表单标签中加载信息
login.name=login name
<@s.textfield label="%{getText('login.name')}" name="name"/>
<@s.textfield label="%{getText('login.title',{'hello','index'})}" name="name2"/>
如果占位符对应的参数来自Action,那么可以直接在action中调用国际化返回一个参数变量即可。
<@s.textfield label="%{tab1}" name="address3"/>或
<@s.textfield label="${tab1}" name="address5"/>均可正常显示。
Action中访问:
在Action类中获取带占位符的国际化信息,可以使用getText(String key, String[] args)或getText(String aTextName, List args)方法。
login.title=welcome into page
String[] mess= new String[]{"数组占位值1","数组占位值2"};
System.out.println(getText("login.title",mess));
String mes1= "单一占位值1";String tab2= "单一占位值2";
System.out.println(getText("login.title",new String[]{mes1,mes2}));
以上显示均通过测试。
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://aumy2008.blogbus.com/logs/42433426.html
由于FreeMarker自供的FTL指令的能力非常有限,让我们编写一些相对复杂的界面里有点力不从心。不过不用担心,Struts2已经为我们提供了额外的标签库的支持。
1.要在FreeMarker模板使用标签库,只要四步,如下:
(1)解压struts2-core-X.X.X.jar文件,把在META-INF文件夹下面的struts-tags.tld文件复制到WEB-INF文件夹下。
(2)在web.xml文件中启动JSPSupportServlet.代码如下:
<servlet>
<!-- define a JspSupportServlet Object -->
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<!-- setting JspSupportServlet auto start -->
<load-on-startup>1</load-on-startup>
</servlet>
(3)在FreeMarker模板中使用assign指令导入标签库。代码如下
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] /> 注:这里我把struts-tags.tld放在WEB-INF下面
(4)现在我们可以在FreeMarker模板中使用标签了,示例代码如下:
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<@s.form action="login">
<@s.textfield name="username" label="username"/>
<@s.submit value="login" />
</@s.form >
2.登录示例:
(1)在WEB-INF文件夹下面建立一个名为ftl的文件夹,其实就是FreeMarker容器,我们把所有的ftl文件都放在里面。
现在我们先在下面建立三个名字分别为login.ftl,welcome.ftl,showinfo.ftl的文件。
login.ftl代码如下
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />
<html>……
<body>
please input username and password login<br>
<@s.form action="Login.action">
<@s.textfield name="username" label="username"/>
<@s.password name="password" label="password" />
<@s.submit value="submit" />
</@s.form >
</body>
</html>
welcome.ftl代码如下:
<html>…WelCome,${username},you logined!<br>
<a href="ShowInfo.action">Show Information</a>…</html>
showinfo.ftl
(2)从上面的ftl中我们可以看出,我们必须建立两个Action。
我是在com.test.action包下建立Action的。
LoginAction.java ShowInfo.java
(3)剩下的就是配置文件啦,也就是struts.xml
代码片段如下:
<!-- 因为浏览者无法直接访问WEB-INF/ftl路径下的资源,所以我们在struts.xml文件中配置下面片段代码。 也就是配置了一个能匹配所有请求的Action,该Action被映射到一个动态Result. -->
<action name="*">
<result type="freemarker">/WEB-INF/ftl/{1}.ftl</result>
</action>
<!-- define a LoginAction -->
<action name="Login" class="com.test.action.LoginAction">
<result name="error" type="freemarker">/WEB-INF/ftl/error.ftl</result>
<result name="success" type="freemarker">/WEB-INF/ftl/welcome.ftl</result>
</action>
<action name="ShowInfo" class="com.test.action.ShowInfo">
<result name="login" type="freemarker">/WEB-INF/ftl/login.ftl</result>
<result name="success" type="freemarker">/WEB-INF/ftl/showinfo.ftl</result>
</action>
以上内容转自:FreeMarker作为Struts2的视图
3、国际化
类似JSP+Struts2的国际化,可参考:Struts2的国际化
(1)准备资源属性文件
baseName_language_country.properties
baseName_language.properties
baseName.properties
(2)Struts2加载全局资源文件
加载全局资源文件的方式是通过配置常量来实现的。(struts.custom.i18n.resources)
具体配置:在struts.properties配置文件中增加以下信息
struts.custom.i18n.resources= baseName(文件名,不含后缀)
(3)访问国际化资源
ftl页面输出:
A:不带占位符的信息加载
login.title=welcome into page
<@s.text name="login.title"/> 用name属性来加载资源文件的key值。
或<@s.property value="%{getText('login.title')}"/>
B:带占位符的信息加载
login.title=welcome {0} into {1} page
<@s.text name="login.title">
<@s.param>hello</@s.param>
<@s.param>index</@s.param>
</@s.text>或
<@s.property value="%{getText('login.title',{'hello','index'})}"/>
C:在表单标签中加载信息
login.name=login name
<@s.textfield label="%{getText('login.name')}" name="name"/>
<@s.textfield label="%{getText('login.title',{'hello','index'})}" name="name2"/>
如果占位符对应的参数来自Action,那么可以直接在action中调用国际化返回一个参数变量即可。
<@s.textfield label="%{tab1}" name="address3"/>或
<@s.textfield label="${tab1}" name="address5"/>均可正常显示。
Action中访问:
在Action类中获取带占位符的国际化信息,可以使用getText(String key, String[] args)或getText(String aTextName, List args)方法。
login.title=welcome into page
String[] mess= new String[]{"数组占位值1","数组占位值2"};
System.out.println(getText("login.title",mess));
String mes1= "单一占位值1";String tab2= "单一占位值2";
System.out.println(getText("login.title",new String[]{mes1,mes2}));
以上显示均通过测试。
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://aumy2008.blogbus.com/logs/42433426.html
发表评论
-
借助Spring监听接口为数据库初始化数据
2012-03-31 09:36 0在做WEB项目时,经常在 ... -
json遇到java关键字
2012-03-23 10:58 1188json-lib框架需要在jsonconfig里设置 http ... -
转载:JVM性能参数调优实践,不会执行Full GC,网站无停滞
2012-02-17 12:09 2185JVM参数调优是个很头痛 ... -
TaskManager故障分析解决
2012-02-16 19:19 24391.错误 TaskManager,频繁崩溃。 tomcat崩溃 ... -
Java调用linux scp操作 zz
2011-11-01 10:43 1855先来回顾下linux下scp命 ... -
Maven创建Web工程,把Maven项目变成Dynamic Web项目
2011-09-08 10:15 19808http://code.google.com/p/j2eewi ... -
Eclipse的Dynamic Web Project与Maven的的整合
2011-09-08 09:54 1773Eclipse的Dynamic Web Project支持直接 ... -
ADTV项目回忆
2011-06-21 13:38 1233其实是TV AD System 数字电视广告系统。 待续.. ... -
一个swing的小工程
2011-06-13 20:58 2047这个工程用于统计文件或代码行数,原来是帮朋友做的。 第一次用J ... -
Taskmanager项目回忆
2011-02-12 18:08 1041待完成... -
Querydsl有趣的通用查询框架
2011-02-12 11:43 18299说起Querydsl这里不得不 ... -
多态调用顺序
2010-11-04 18:06 898方法调用的优先问题 ,优先级由高到低依次为: this.sho ... -
javamail 连接服务器一次发送可任意多封邮件,不是每次发送都要重新连接
2010-08-21 15:17 6566改编自网络 其中附件部分没有测试 import jav ... -
java截取中英文混合字符串 等宽显示
2010-08-16 12:06 6988import java.io.UnsupportedEnc ... -
Spring no matching editors or conversion strategy found 异常的一种情况
2010-08-09 20:44 8025有人说这样写可以 <tx:advice id=" ... -
ognl.OgnlException: target is null for setProperty(null,
2010-06-07 20:12 1342出现这样的错误还可能是action的struts.xml没配置 ... -
struts2.x标签if test 的一个字符型值字符串比较
2010-05-06 22:05 5166例如这个语句 要判断struts堆栈里systemSettin ... -
ubuntu,eclipse下svn切换用户的方法
2010-05-06 21:53 2828ubuntu下eclipse使用svn 想更改用户,但上一个用 ... -
zz:Freemarker 内置函数 数字、字符串、日期格式化
2010-01-25 11:42 1589一、Sequence的内置函数 1 ... -
freemarker+struts2+ibatis入门学习摘要
2009-09-09 12:48 1297见附件,初级学习摘要+完整实例project。 欢迎批评指正v ...
相关推荐
(3)Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC; (4)采用优化性能技术,采用oscache缓存,freemarker静态页面生成; (5)功能比较多但操作简单的后台管理;(后台管理附图片)
该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开。 struts.dispatcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet...
9.2.2 Struts2Action范围属性文件国际化应用 187 9.2.3 Struts2临时范围属性文件国际化应用 188 9.3 用户主动选择国际化应用介绍 191 第10章 Struts2页面布局实现 194 10.1 sitemesh基本使用方法 194 10.2 sitemesh...
该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开. struts.diSPAtcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet Request...
第11章 理解国际化 240 11.1 Struts 2框架和Java i18n 241 11.1.1 使用ResourceBundle和Locale取得本地化文本 241 11.1.2 Struts 2如何解决本地Java对i18n支持的问题 243 11.2 Struts 2 i18n示例 244 11.2.1 Struts ...
作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...
一个J2EE购物网站的实现 运用struts1.2+hibernate+spring 框架,数据库连接池,...Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC。 采用优化性能技术,采用oscache缓存,freemarker静态页面生成
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
6.3.3应用struts2输入校验框架 128 6.3.4自定义校验器 130 6.4国际化 131 6.4.1国际化实现原理 131 6.4.2准备国际化资源文件 131 6.4.3调用国际化资源文件 134 6.5上传和下载 135 6.5.1文件上传的实现原理 ...
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
5、智能的国际化和本地化 字符集智能化(内部使用UNICODE) 数字格式本地化敏感 日期和时间格式本地化敏感 非US字符集可以用作标识(如变量名) 多种不同语言的相同模板 6、强大的XML处理能力 <#recurse> 和&...
(3)Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC; (4)采用优化性能技术,采用oscache缓存,freemarker静态页面生成; (5)功能比较多但操作简单的后台管理;(后台管理附图片); 安装方法: 1...
支持国际化。可以根据用户区域显示多国语言。 Spring MVC具有以下特点: 支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术。 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序。 在Eclipse中...
Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC; 采用优化性能技术,采用oscache缓存,freemarker静态页面生成; 功能比较多但操作简单的后台管理;(后台管理附图片); 安装方法: 1:mysql中...
(3)Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC; (4)采用优化性能技术,采用oscache缓存,freemarker静态页面生成; (5)功能比较多但操作简单的后台管理;(后台管理附图片); 安装方法: 1...
(3)Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC; (4)采用优化性能技术,采用oscache缓存,freemarker静态页面生成; (5)功能比较多但操作简单的后台管理;(后台管理附图片); 安装方法: 1...
包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。 (13) spring-mock.jar 这个jar文件...
包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、 XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。 (13) spring-mock.jar 这个jar文件包含...