- 浏览: 194769 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
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 1274json-lib框架需要在jsonconfig里设置 http ... -
转载:JVM性能参数调优实践,不会执行Full GC,网站无停滞
2012-02-17 12:09 2233JVM参数调优是个很头痛 ... -
TaskManager故障分析解决
2012-02-16 19:19 24981.错误 TaskManager,频繁崩溃。 tomcat崩溃 ... -
Java调用linux scp操作 zz
2011-11-01 10:43 1893先来回顾下linux下scp命 ... -
Maven创建Web工程,把Maven项目变成Dynamic Web项目
2011-09-08 10:15 19873http://code.google.com/p/j2eewi ... -
Eclipse的Dynamic Web Project与Maven的的整合
2011-09-08 09:54 1808Eclipse的Dynamic Web Project支持直接 ... -
ADTV项目回忆
2011-06-21 13:38 1272其实是TV AD System 数字电视广告系统。 待续.. ... -
一个swing的小工程
2011-06-13 20:58 2087这个工程用于统计文件或代码行数,原来是帮朋友做的。 第一次用J ... -
Taskmanager项目回忆
2011-02-12 18:08 1071待完成... -
Querydsl有趣的通用查询框架
2011-02-12 11:43 18362说起Querydsl这里不得不 ... -
多态调用顺序
2010-11-04 18:06 936方法调用的优先问题 ,优先级由高到低依次为: this.sho ... -
javamail 连接服务器一次发送可任意多封邮件,不是每次发送都要重新连接
2010-08-21 15:17 6617改编自网络 其中附件部分没有测试 import jav ... -
java截取中英文混合字符串 等宽显示
2010-08-16 12:06 7030import java.io.UnsupportedEnc ... -
Spring no matching editors or conversion strategy found 异常的一种情况
2010-08-09 20:44 8073有人说这样写可以 <tx:advice id=" ... -
ognl.OgnlException: target is null for setProperty(null,
2010-06-07 20:12 1401出现这样的错误还可能是action的struts.xml没配置 ... -
struts2.x标签if test 的一个字符型值字符串比较
2010-05-06 22:05 5205例如这个语句 要判断struts堆栈里systemSettin ... -
ubuntu,eclipse下svn切换用户的方法
2010-05-06 21:53 2902ubuntu下eclipse使用svn 想更改用户,但上一个用 ... -
zz:Freemarker 内置函数 数字、字符串、日期格式化
2010-01-25 11:42 1624一、Sequence的内置函数 1 ... -
freemarker+struts2+ibatis入门学习摘要
2009-09-09 12:48 1370见附件,初级学习摘要+完整实例project。 欢迎批评指正v ...
相关推荐
Struts2是一个基于Model-View-Controller(MVC)设计模式的Java Web框架,它简化了Web应用开发,提供了强大的动作和结果处理、拦截器、国际化等功能。在Eclipse中,你可以通过Maven仓库下载Struts2的相关依赖,然后...
在Struts2和Freemarker中实现国际化,可以让应用的用户界面适应全球范围内的用户。 首先,我们需要理解Struts2的国际化流程。Struts2提供了一种机制,通过资源属性文件(通常是.properties格式)来管理不同语言的...
(3)Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,Spring IOC; (4)采用优化性能技术,采用oscache缓存,freemarker静态页面生成; (5)功能比较多但操作简单的后台管理;(后台管理附图片)
Struts2提供了丰富的拦截器、结果类型和插件,使得开发者可以轻松地处理表单提交、验证、国际化等问题。在这个项目中,Struts2可能是用来接收用户通过Flash上传的摄像头头像数据,并将其保存到服务器。 接着,...
- **国际化**:使用FreeMarker的`<#i18n>`指令来实现国际化。 - **标签库**:结合Struts2的标签库,如`s:form`、`s:textfield`等,使模板更加简洁。 - **模板继承**:通过`<#include>`或`<@import>`指令,实现模板的...
7. **国际化与本地化**:Struts2和Freemarker都支持多语言环境,可以通过资源文件实现不同地区的文字显示。 在实际开发中,"freemarker2"这个文件可能是Freemarker的一个示例模板或者配置文件,它可能包含了如何...
同时,系统还可能包含了异常处理、国际化支持、AJAX异步更新等高级特性,以提升用户体验。 在文件列表"MyVote"中,我们可以推测这包含了整个项目的源代码结构。其中,可能包括了Action类(Struts2的核心组件,处理...
7. **国际化与本地化**:Struts2支持Freemarker的国际化功能,可以创建资源文件(如`message.properties`),并使用`<@s.i18n...>`标签来输出本地化信息。 8. **静态页面生成**:整合Struts2和Freemarker的一个常见...
如何定义一个自定义的结果类型,以及如何利用Struts2的国际化功能提供多语言支持。此外,文档可能还会涵盖Struts2与其他技术的整合,如Spring框架的集成,以及数据库操作的示例。 在实际开发中,Struts2允许灵活的...
学习Struts2,你需要了解Action、配置文件(struts.xml)、拦截器链、结果类型(例如JSP、FreeMarker或Velocity模板)、国际化和验证机制。同时,Struts2与其他框架(如Hibernate进行ORM、Spring进行依赖注入)的...
- **国际化(Internationalization, i18n)**:系统可能支持多语言,因此需要使用资源文件进行国际化处理。 - **权限控制(Access Control)**:系统可能有不同级别的用户,需要进行角色和权限管理,可以使用Spring ...
Struts2和FreeMarker是两种在Java Web开发中广泛应用的技术。Struts2是一个基于MVC(Model-View-Controller)架构模式的开源框架,用于构建动态、数据驱动的Web应用程序,而FreeMarker则是一个模板引擎,它允许...
7. 错误和异常处理,以及国际化支持。 通过这个项目,你将深入理解J2EE应用程序的开发流程,提升Java Web开发技能,同时也能巩固数据库管理和MVC架构的理解。在实际练习过程中,可能会遇到的问题包括但不限于数据库...
此外,还可以使用Struts2的国际化和主题特性来实现多语言和不同样式表的支持。 总结来说,Struts2与Freemarker的配置主要是围绕工程的环境搭建、Struts2的web.xml配置、struts.xml配置以及Freemarker模板的编写展开...
此外,Struts2还提供了强大的数据验证和国际化等功能。 5. **SSH2整合**:SSH2是Spring、Struts2和Hibernate的简称,代表了Java Web开发的一种流行组合。整合这三者可以实现模型-视图-控制器、持久层管理和业务逻辑...
权威指南通常会提供更深入的分析和实践指导,涵盖了Struts2的最新特性,如Struts2与Spring集成、国际化、异常处理、AJAX支持等。这本书可能还会讨论最佳实践,如何优化性能,以及如何调试和解决Struts2应用中的问题...
3. **国际化与本地化**:Struts2支持国际化,可以在模板中使用`#messages`指令显示不同语言的消息。 4. **模板继承与宏**:FreeMarker支持模板继承,子模板可以继承父模板的部分内容,提高代码复用。宏可以封装常用...
国际化(i18n)是Struts2的一个重要特性,使得应用能够支持多种语言环境,以满足全球用户的语言需求。以下是对Struts2框架国际化实现的详细讲解。 1. **国际化的基本概念** 国际化(Internationalization,简称i18...
- **国际化支持**:内置对国际化和本地化的支持,方便实现多语言应用。 - **强大的表单处理能力**:提供自动的数据绑定和验证功能,简化了前端表单处理的工作量。 ### 二、MVC设计模式详解 #### 1. MVC的概念 MVC...