实际应用中经常遇到访问某个页面,系统以XML格式返回"成功"或者"失败"信息,客户端根据XML格式判断显示相应的页面。
服务器端的处理完请求之后,以XML格式返回处理信息,可以在response中写回去,Action中就return null
示例如下:
- importjava.io.IOException;
- importjava.util.Iterator;
- importjava.util.List; @H_404_40@
- importjavax.servlet.http.HttpServletRequest; @H_404_40@ importjavax.servlet.http.HttpServletResponse;
- @H_404_40@ importorg.apache.log4j.Logger;
- importorg.apache.struts.action.ActionForm; @H_404_40@ importorg.apache.struts.action.ActionForward;
- importorg.apache.struts.action.ActionMapping; @H_404_40@ importorg.apache.struts.actions.DispatchAction;
- importorg.jdom.Document; @H_404_40@ importorg.jdom.Element;
- importorg.jdom.output.Format; @H_404_40@ importorg.jdom.output.XMLOutputter;
- publicclassGetAllActionextendsDispatchAction{
- privateHttpServletResponseresponse=null;
- publicActionForwardqueryAlluser(ActionMappingmapping,ActionFormform, @H_404_40@ HttpServletRequestrequest,HttpServletResponseresponse){
- this.response=response; @H_404_40@ //接收查询结果
- List<UserIPInfo>userPOList=null;
- //拼装HQL语句
- Stringhql="fromUserIPInfoaspoorderbyidasc";
- //生成XML格式的root
- ElementrootElt=newElement("userInformations");
- //获得commonDao的实例 @H_404_40@ CommonDaoIf<UserIPInfo>commonDao=newCommonDaoImpl<UserIPInfo>();
- //调用CommonDaoImpl的query方法将所有符合条件的对象存入List中 @H_404_40@ userPOList=commonDao.query(hql);
- for(Iterator<UserIPInfo>itor=userPOList.iterator();itor.hasNext();){
- UserIPInfotemp=itor.next(); @H_404_40@ System.out.println(temp.getAddress());
- System.out.println(temp.getId()); @H_404_40@ System.out.println(temp.getPort());
- }
- sendAccept(rootElt,userPOList);
- returnnull; @H_404_40@ }
- privatevoidsendAccept(ElementrootElt,List<UserIPInfo>list){
- //遍历List中的元素,将数据加入XML中 @H_404_40@ for(Iterator<UserIPInfo>itor=list.iterator();itor.hasNext();){
- //获取符合条件的元素 @H_404_40@ UserIPInfotemp=itor.next();
- //生成元素<user></user>
- Elementuser=newElement("user");
- //生成元素<userId></userId>
- ElementuserId=newElement("userId");
- //生成元素<userAddress></userAddress>
- ElementuserAddress=newElement("userAddress");
- //生成元素<userPort></userPort>
- ElementuserPort=newElement("userPort");
- //设置各个标签<userId><userAddress><userPort>的值 @H_404_40@ userId.setText(Integer.toString(temp.getId()));
- userAddress.setText(temp.getAddress()); @H_404_40@ userPort.setText(temp.getPort());
- //加入到上级标签<user>中去
- user.addContent(userId); @H_404_40@ user.addContent(userAddress);
- user.addContent(userPort);
- rootElt.addContent(user);
- send(rootElt); @H_404_40@ privatevoidsend(ElementrootElt){
- Documentdoc=newDocument(rootElt); @H_404_40@ XMLOutputterout=newXMLOutputter();
- //设置文件的编码格式 @H_404_40@ out.setFormat(Format.getCompactFormat().setEncoding("UTF-8"));
- try{ @H_404_40@ response.getOutputStream().write(out.outputString(doc).getBytes());
- }catch(IOExceptione){ @H_404_40@ e.printStackTrace();
- }
比较讨巧的办法:就是直接转向某jsp页面
将数据设在request中,在jsp页面直接展示
在Action中就这样处理:
?