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+JQuery+JSON实现异步交互

Struts2+JQuery+JSON实现异步交互,包括从后台获得单个值、对象、List和Map数据并从前台的表达中获取值把值进行序列化通过JQuery的$.ajax({})传到后台和后台的对象进行绑...

Struts2+jQuery+JSON实现异步交互(找资料看到的一篇不错的文章)

Struts2+JQuery+JSON实现异步交互,包括从后台获得单个值、对象、List和Map数据并从前台的表达中获取值把值进行序列化通过JQuery的$.ajax({})传到后台和后台的对象进行绑...

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

一.首先配置环境,导入stuts2-json集成jar包 二.修改struts2.xml配置文件 json-default继承struts-default 三.前端采用$.ajax方...

struts2使用ajax实现页面和action之间通过json数据交互

要在struts2中使用json数据交互,需要导入以下包 当然,struts2应用核心包也要导入...

利用Struts2发起ajax请求,实现数据交互

韩美针对朝鲜进行“先发制人”、“斩首行动”的联合军演;那边朝鲜刚刚搞完导弹试验,特朗普又新任不久。在局势不明朗的情况下,突然出现了金正男遇刺这样的死亡方式——如果真是如新闻所报那样的话,这种暗杀的方式...

Spring4 Spring MVC实战(四)——Spring MVC实现类struts通配符跳转,HMTL、Ajax和EasyUI的交互,405及406错误

Spring4 Spring MVC实战(四)——Spring MVC实现类struts通配符跳转,HMTL、Ajax和EasyUI的交互,405及406错误...
  • iaiti
  • iaiti
  • 2016年10月17日 10:05
  • 979

使用Struts2和jQuery EasyUI实现简单CRUD系统(一)——从零开始,ajax与Servlet的交互

就是前端与后台的交互,学j2ee,很多时候,写jsp的时候,jsp帮你把前端后台串联起来。但事实上,很多时候前端写好的东西,需要后台进行一些处理,再去改成jsp代码是很恶心的东西,什么都是jsp。其实...

struts2+jquery+json实现异步交互(网摘)

Struts2+JQuery+JSON实现异步交互,包括从后台获得单个值、对象、List和Map数据并从前台的表达中获取值把值进行序列化通过JQuery的$.ajax({})传到后台和后台的对象进行绑...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts实现XML交互
举报原因:
原因补充:

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