一,在Struts.xml添加如下的一段配置代码:
<action name="free" class="com.free.action.FreeTestAction">
<result name="success" type="freemarker">
<param name="location">/WEB-INF/template/free.ftl</param>
<param name="contentType">application/xml</param>
</result>
</action>
二,FreeTestAction.java:
package com.free.action;
import java.util.List;
import com. free.domain.Functioninfo;
import com. free.service.FunctioninfoService;
publicclass FreeTestAction {
private FunctioninfoService functioninfoService;
private List<Functioninfo> functionlist;
public String execute() throws Exception
{
functionlist = this.functioninfoService.findAll();
return"success";
}
public FunctioninfoService getFunctioninfoService() {
returnfunctioninfoService;
}
publicvoid setFunctioninfoService(FunctioninfoService functioninfoService) {
this.functioninfoService = functioninfoService;
}
public List<Functioninfo> getFunctionlist() {
returnfunctionlist;
}
publicvoid setFunctionlist(List<Functioninfo> functionlist) {
this.functionlist = functionlist;
}
}
此例里面返回对象为List。当然,可以为单个对象,或者Map。
(其中,Functioninfo.java是有以下三个属性字段及其getter和setter的POJO类:
private String functionid;
private String functionname;
private String fdescription;
FunctioninfoService.java是Service层接口,调用dao方法从数据库中查询数据。不附详细代码。
)
三, 在WEB-INF下新建包template,包下新建Free.ftl文件:
<?xml version="1.0" encoding="utf-8"?>
<Functioninfo>
<#list functionlist as function>
<function>
<functionid>${function.functionid}</functionid>
<functionname>${function.functionname}</functionname>
<fdescription>${function.fdescription}</fdescription>
</function>
</#list>
</Functioninfo>
四、使用IE访问http://localhost:8080/citylocation/free 可以看到xml格式的输出文件: