Struts实现XML交互

原创 2007年09月12日 16:57:00

 今天需要给系统添加一个解析硬件上送XML的功能,看了些相关的资料。有些帖子则说Struts没办法进行MXL交互。因此自己先做了测试,编写一个servlet:

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException ...{
  
char buff[] = new char[2048];

//  System.out.println("xml is:"+ request.getParameter("xmlText"));
//  System.out.println("xml is:"+ request.getAttribute("xmlText"));
  
  BufferedReader bufferedReader 
= request.getReader();
  bufferedReader.reset();
  bufferedReader.read(buff);
  System.out.println(
"Data is: " + new String(buff));
 }



如果去掉注释的两行的话,则读取的XML就行,反之不成。因此结论是如果取得了request的数据,那么就无法读取到请求的XML串。因此解决方式,将struts与form相关的配置省略,让struts不填充fromBean。例如:

  <!-- 数据上送接口 -->
  
<action path="/centigrade/saveRealTimeSensorData"
   type
="com.aherp.wtrs.app.action.BusinessAction"
   scope
="request">
   
<forward name="success" path="/pages/common/blank.jsp" />
  
</action>


此处action没有写name属性。那么struts也就不用去生成form填充了,那么也就不会去request.getParameter了。因此,在对应的action里:

  BufferedReader bufferedReader = request.getReader();
  StringBuffer stringBuffer 
= new StringBuffer("");

  String lineDatas 
= bufferedReader.readLine();
  
while(lineDatas != null)...{
   stringBuffer.append(lineDatas);
   lineDatas 
= bufferedReader.readLine();
  }


  Document document 
= DocumentHelper.parseText(stringBuffer.toString());
  System.out.println(document.getRootElement().element(
"imei").getText());
  System.out.println(document.getRootElement().element(
"temperature").getText());



也就拿到了对应的数据。也能够正常处理了。

更多思考:
如果要使用request.getReader话,那么request.getParameter也便无法读取数据。因此如果是页面要post表单对象和XML数据,那么就必须把XML数据放到表单对象里发送再进行处理。

Struts2:前后台的数据交互

页面获取action传来的值:方法一:使用Java代码 方法二:使用EL表达式${str}方法三:使用Struts2标签从ValueStack取值: ...
  • lk7688535
  • lk7688535
  • 2016年07月18日 11:08
  • 1566

Ajax与Struts2的action之间的数据交互

本文将主要说明Ajax与Action数据交互的实现过程,前端使用JQuery中Ajax的相关方法,get或者post,将数据以Json格式传回到业务调度Action中,Action中处理后,再讲数据以...
  • u012465296
  • u012465296
  • 2016年08月13日 19:31
  • 3417

struts2+Jquery+ajax实现前后端数据交互

一.首先配置环境,导入stuts2-json集成jar包 二.修改struts2.xml配置文件 json-default继承struts-default 三.前端采用$.ajax方...
  • qq_33473744
  • qq_33473744
  • 2017年03月12日 22:09
  • 1205

【Struts实现页面验证码】

第一步,获取随机的字符串: public class SecurityCode { public enum SecurityCodeLevel { Simple, Medium, Hard ...
  • bear_huangzhen
  • bear_huangzhen
  • 2016年04月19日 08:59
  • 2258

深入详解Struts2——struts.xml配置详解(一)

bean的配置 struts2是一个可扩展的框架,核心组件都是可以配置的,这些组件通过struts2自己的依赖注入容器来装配。 在struts-default.xml文件中,定义了struts2框...
  • fuyuwei2015
  • fuyuwei2015
  • 2015年10月16日 15:21
  • 1017

Struts2 +JDBC——简单登录

struts2+JDBC的简单登录注册
  • so_sss
  • so_sss
  • 2014年09月02日 14:22
  • 2523

ajax实现验证用户名是否已经存在(struts2)

在用户进行注册的时候,为了保证用户名的唯一性,需要在用户注册时进行用户名的验证,这个使用AJAX实现无刷新验证是最合适的。 下面就是我的验证源码,在代码中通过注释讲解用法。 1.jsp页面: ...
  • u013147600
  • u013147600
  • 2015年05月11日 14:09
  • 2524

Struts是如何实现MVC的

上篇文章说到用servlet实现的一些弊端,下面,我们就解决一下这个问题,我们用struts来实现一个登陆的实例。 首先,了解一下struts与MVC的一一对应关系: Model:The Mode...
  • laner0515
  • laner0515
  • 2013年09月06日 21:52
  • 9594

【Struts2】:Interceptor的配置和使用

在之前的博客中,介绍了Struts2的内建拦截器和自定义拦截器的一些内容,但是有了这些自带和自定义的拦截器之后,如何去配置和使用,还没有跟大家详细说明,接下来我们就一起学习一下,Struts2中Int...
  • u010929604
  • u010929604
  • 2016年05月31日 15:50
  • 2304

Struts2框架xml验证

struts2框架验证(xml方式) 首先要从页面中获取对应的标签name属性的值,在动作类action中声明同名的属性,提供get和set方法创建一个xml格式验证文件:命名方式:ActionCla...
  • cckevincyh
  • cckevincyh
  • 2016年11月29日 15:17
  • 895
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts实现XML交互
举报原因:
原因补充:

(最多只允许输入30个字)