以前用struts2,每次响应返回都是跳转到页面。这次的需求是要返回一个xml,查看了struts2的文档,当result的类型为xslt时,可以返回xml。但是对xslt不太熟悉,放弃了此方法。在网上搜了下,找到下面两种取巧的方法:
方法一: 直接利用ActionSuport的execute方法:
struts.xml中代码,不需要定义 result,
<action name="OutxmlExecute" class="com.OutxmlExecuteAction" >
</action>
Action中代码,注意这里execute方法的返回为null,:
public String execute() throws IOException{
String outPut = "<persons>";
outPut += "<person1><name>hanyoud</name><age>25</age></person1>";
outPut += "<person2><name>张三</name><age>18</age></person2>";
outPut += "<person3><name>李四</name><age>20</age></person3>";
outPut += "</persons>";
//转换编码 否则汉字显示为乱码
outPut = new String(outPut.getBytes("UTF-8"),"ISO-8859-1");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/xml ");
PrintWriter pw = response.getWriter();
pw.print(outPut);
System.out.println("-------------------------------");
return null;
}
方法二:利用result类型为plaintext返回xml
struts.xml代码,
<action name="Outxml" method="outxml" class="com.OutxmlAction" >
<result name="xmlMessage" type="plaintext"></result>
</action>
Action中代码:
public void outxml() throws IOException {
System.out.println("=======================");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType( "text/xml " );
PrintWriter pw = response.getWriter();
pw.print( "<persons>" );
pw.print( "<person1><name>hanyoud</name><age>25</age></person1>" );
pw.print( "<person2><name>ss</name><age>18</age></person2>" );
pw.print( "</persons>" );
}
分享到:
相关推荐
在struts2的返回结果配置中,我们大部分情况使用默认的或者chain或者redirect,其实struts2还有很多其他类型的,今天我们就来看一下都有哪些类型。 打开struts2的源码中struts-default.xml文件,我们能看到如下配置
将jsonplugin-0.30.jar放到工程的lib下面,然后struts2在struts.xml的配置文件中可以指定返回的结果集的类型为:json,把返回的结果封装为json字符串JSON插件是Struts2的Ajax插件,通过利用JSON插件,允许开发者以...
3.控制器采用action开发,替代传统的servlet,直接跳转页面返回一个字符串即可,需配置struts.xml对应的jsp。 4.struts2,可以直接对表单提交的数据封装成对象,简洁!当然需要在web.xml中配置核心filter—...
2. 建立一个Web Project(命名为struts_exam1),并添加Struts 2 的相关jar 包; 3. 编写登录页面(login.jsp)、登录成功(login_success.jsp)和登录失败页面(login_fail.jsp); 4. 编写Ation实现类,实现execute()...
(2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何使用alt+/提示 4 6.实例 4 7.开启struts2自带的...
一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。 Struts 2的核心控制器是FilterDispatcher,有3个重要的方法:destroy()、doFilter()和Init(),可以在Struts 2的下载...
使用myeclipse8.5搭建SSH后,将struts.xml和applicationContext.xml移动到别的地方,示例中为webroot下的config文件夹中,web.xml中需要做的修改示例。其中对于返回上一层方式不同的myeclipse可能不同,如有的用../...
从jsp页面提交form表单后,在struts.xml中寻找匹配的action。在action中处理完业务后返回,在struts.xml中的result属性中转向到另外一个action。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以...
1)Demo 学习要点简介: ...2.Eclipse 导入后可能需要在 Xml Catalog 手动添加:ehcache-spring-1.2.xsd(ehcache-spring-annotations-1.2.0-sources.jar里面有,自己找下)。 3.内附Oracle建表等可执行语句。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找 到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action 链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以...
struts2课件 很好的struts2当输入login.jsp访问jsp页面填写完相关信息并提交给login.action时,它会首先被在web.xml中配置的过滤器监听到,过滤器会去查找strust.xml文件,并结合namespace查找名为login的action,...
这个问题搞了一个晚上。(希望对初学的朋友有帮助) 发现不能运行的原因 1、login.jsp的form表格里的...4、struts.xml中的<result name="Sucess">/loginsucess.jsp</result> name要与LoginAction.java的返回结果相对应.
4、 主控制做出判断通过Struts-confing.xml配置文件去问符合要求访问的副控制器 5、 在调用Biz 时 Entity实体对象将请求参数做了第三次封装处理 6、 Action副控制器获得请求信息再调用符合要求Biz去实现功能 7、 在...
-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --> <include file="struts-default.xml"> <!-- package提供了将多个Action组织为一个模块的方式 ...
主要实现步骤如下: 1、JSP页面使用脚本代码执行ajax请求 2、Action中查询出需要返回的数据,并转换为json类型模式数据 3、配置struts.xml文件 4、页面脚本接受并处理数据!
关于 web容器的配置、struts——xml的配置,以及返回类型的描述......
1,需要把jsonplugin-0.33.jar拷贝到Web-INF/lib目录下....2,在struts2.1.6的配置文件中进行配置,就是返回的类型是json,并且要为JSON数据单独创建一个Package,继承的包不再是struts-default,而是json-default
4.action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml...
首先,Struts的ActionServlet接收到一个请求,然后根据struts-config.xml的配置定位到相应的mapping (映射);接下来如果form的范围是request或者在定义的范围中找不到这个form,创建一个新的form实例;取得form...