关于webwork+freemarker的简单实例
action类:
public class TestAction extends CoreActionSupport implements BaduObjectLoader {
public List getUsers() {
return users;
}
private List users;
public String execute() {
List users_=new ArrayList();
BigDecimal amount1 = new BigDecimal(Double.toString(99999999.66));
BigDecimal amount2 = new BigDecimal(Double.toString(88888888.77));
BigDecimal amount3 = new BigDecimal(Double.toString(77777777.88));
TopInUser u1=new TopInUser();
u1.setCount(10002);
u1.setNickname("zhangsan");
u1.setUid(123);
u1.setAmount(amount1);
TopInUser u2=new TopInUser();
u2.setCount(10003);
u2.setNickname("zhangsan");
u2.setUid(123);
u2.setAmount(amount2);
TopInUser u3=new TopInUser();
u3.setCount(1044);
u3.setNickname("zhangsan444");
u3.setUid(5555);
u3.setAmount(amount3);
users_.add(u1);
users_.add(u2);
users_.add(u3);
users=users_;
return SUCCESS;
}
public String loadObjects() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
}
实体类:
public class TopInUser {
private long uid; //用户id
private int count; //数量
private String nickname; //用户昵称
private java.math.BigDecimal amount; //金额
public java.math.BigDecimal getAmount() {
return amount;
}
public void setAmount(java.math.BigDecimal amount) {
this.amount = amount;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public long getUid() {
return uid;
}
public void setUid(long uid) {
this.uid = uid;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
webwork配置文件:
<action name="test" class="com.guagua.vas.top.action.TestAction">
<result name="success" type="freemarker">/test/index.html</result>
</action>
注意属性:type="freemarker" 表示 视图采用freemarker来显示数
官方推荐为模板文件后缀为ftl,其他后缀也可以 这里为html
下面看index.html:
<html>
<body>
<h1>webwork freemarker demo</h1>
<br/>
total: ${users?size} <br/><br/>
<#list users as user>
<li>
${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname}---${user.amount?c}
</li>
</#list>
<h1>webwork freemarker demo</h1>
<#list users as user>
<li>
${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname?substring(0,5)?trim?upper_case}---${user.amount?c}
</li>
</#list>
<hr/>
get first object: <br/>
first : ${users?first.uid?c} <br/><br/>
get last object: <br/>
last : ${users?last.uid?c} <br/><br/>
<hr/>
<#list users as user>
<#if user_index=0>
<li>
第一 ${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname?substring(0,5)?trim?upper_case}---${user.amount?c}
</li>
</#if>
<#if user_index=1>
<li>
第二 ${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname?substring(0,5)?trim?upper_case}---${user.amount?c}
</li>
</#if>
<#if user_index=2>
<#break>
<li>
第三 ${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname?substring(0,5)?trim?upper_case}---${user.amount?c}
</li>
</#if>
</#list>
<hr/>
<#list users as user>
<#assign i = user_index>
${i}
<#switch i>
<#case 0>
<li>
${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname?substring(0,5)?trim?upper_case}---${user.amount?c}
</li>
<#break>
<#case 1>
<li>
${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname?substring(0,5)?trim?upper_case}---${user.amount?c}
</li>
<#break>
<#case 2>
<li>
${user_index+1}---------- ${user.uid?c}-${user.count?c}-${user.nickname?substring(0,5)?trim?upper_case}---${user.amount?c}
</li>
<#break>
<#default>
</#switch>
</#list>
</body>
</html>
访问:
http://www.test.com/test.jspa
输出结果:
分享到:
相关推荐
这个"struts2+hibernate+freemarker"项目实例是将这三个框架集成到一起,构建了一个完整的Web应用程序。 **Struts2** 是一个强大的MVC框架,它基于Action和Result的设计模式,负责处理用户的请求,并将其转发到相应...
本源码实例只供学习。。 请一并下载webwork+spring+hibernate+freemarker (A)demo_lib 配合才能使用(此为项目的lib包。。) 请打开mark.txt参考操作
Webwork、Spring、Hibernate和Freemarker是Java Web开发中常用的四大框架,它们各自负责不同的职责,协同工作可以构建出高效、灵活的企业级应用。在这个"A" demo项目中,它们被整合在一起,提供了完整的MVC(Model-...
webwork+Spring+ibatis 此为webwork+Spring+ibatis+freemarker 源码实例 因为包大,只好分开。。请一并下载webwork+Spring+ibatis_lib放入些实例中,,才能运行! 解压后,请参考mark.txt文件操作,即可!
### Spring+Ibatis+WebWork框架搭配详解 在软件开发领域,选择合适的开发框架对于项目的成功至关重要。本文将深入探讨如何结合使用Spring、Ibatis(现称为MyBatis)以及WebWork这三个流行的Java开发框架来构建高效...
WebWork 是一个由 OpenSymphony 开发的 ...通过实践上述的WebWork简单实例,你可以开始了解WebWork的工作原理和流程,进一步深入学习WebWork的高级特性,如拦截器、AOP、国际化、异常处理等,从而提升你的Web开发技能。
以下是关于Freemarker语法和实例的详细讲解: 1. **概念** - **Sequence**:序列,类似于Java中的List、数组,存储非键值对的数据集合。 - **Hash**:键值对集合,对应于Java中的Map,存储键值对数据。 - **...
接下来,我们转向Struts 2.0,它是Struts 1.0的后续版本,但实际上是Struts 1.0和WebWork框架的融合。Struts 2.0在设计上更加灵活,提供了更强大的功能和更好的用户体验。它引入了拦截器(Interceptor)的概念,允许...
WebWork实例是一个非常适合初学者的教程,它允许学习者在现有基础上扩展自己的业务功能,实践并理解MVC框架的工作原理。 在WebWork中,"Model"负责处理应用程序的数据和业务逻辑,通常是由JavaBeans或POJO(Plain ...
WebWork2.0是一款基于Java的企业级Web应用框架,它为开发者提供了强大的MVC(Model...提供的`WebWork2.ppt`文件应包含详细的PPT讲解,可以帮助读者更直观地了解WebWork2.0的各个方面,包括概念、配置实例、最佳实践等。
Webwork2 使用JSP或FreeMarker等模板引擎作为视图层。开发者可以在模板中插入动态内容,如Java表达式和控制结构,以生成HTML或其他格式的输出。 **7. 框架配置** Webwork2 的配置主要通过XML文件完成,包括action...
“webwork中文参考手册”很可能详细讲解了上述概念,并配有实例和代码示例,帮助初学者逐步理解并掌握WebWork的使用。在学习过程中,除了阅读手册,还建议动手实践,结合实际项目加深理解,以便更好地应用WebWork...
为了更好地理解WebWork的使用方式,我们可以通过一个简单的“Hello World”示例来进行实践: 1. **创建Action**:定义一个Action类,例如`HelloAction`,并实现相应的业务逻辑方法。 2. **配置Action**:在`webwork...
标题“spring+hibernate+webwork相关配置”涉及到的是一个经典的Java Web开发技术栈,主要包括Spring框架、Hibernate持久化框架以及WebWork(或者可能是Struts2,因为WebWork后来演变成了Struts2)。这些技术在早期...
WebWork则构建于Xwork之上,专注于处理HTTP请求和响应,通过ServletDispatcher进行请求处理和映射,支持多种视图表示技术如JSP、Velocity、FreeMarker等。 #### WebWork安装与HelloWorld示例 在开始开发之前,首先...
Lightbody可能是一个特定的WebWork应用实例或者是项目的名字。这个目录中应该包含了用Java编写的控制器、模型、视图以及相关的辅助类。开发者通常会在这个目录下找到以下结构: 1. **控制器(Controllers)**: 这些...
### WebWork教程知识点详解 #### 一、WebWork框架简介 **WebWork**是一个由OpenSymphony组织开发的Java Web框架,它采用了Model-View-Controller(MVC)设计模式,旨在实现组件化和代码重用。WebWork的最新版本为...
当请求到达时,WebWork会根据配置找到相应的Action方法执行,并将请求参数绑定到Action实例的属性上。 4. **Action介绍** 动作有两种主要类型:Field-Driven Action 和 Model-Driven Action。Field-Driven Action...
4. **Value Stack(值栈)**:值栈是WebWork2中的一个核心概念,它存储了Action实例和其他对象,这些对象可以通过OGNL(Object-Graph Navigation Language)表达式在视图层访问。 5. **Request/Session/...
4. **Action管理**:Spring可以管理WebWork的动作实例,包括创建、初始化、销毁等生命周期过程,这样可以避免在WebWork中手动管理对象的复杂性。 5. **ActionContext集成**:WebWork的ActionContext可以与Spring的...