首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

如何小弟我的页面接收不到action传递过来的response.getWriter().print()呢

2012-03-15 
怎么我的页面接收不到action传递过来的response.getWriter().print()呢?如题,我的action已经能够成功连接

怎么我的页面接收不到action传递过来的response.getWriter().print()呢?
如题,我的action已经能够成功连接到hibernate进行查询,就是查询结果不能通过response.getWriter()传递到页面。请问是什么原因呢?
下面是我的action和页面的部分代码。。。请帮忙看看。。。
action:
package com.btaxi.action;
import java.io.IOException;
import com.opensymphony.xwork2.ActionSupport;
import com.btaxi.service.UserService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
public class LoginAction extends ActionSupport implements ServletResponseAware, ServletRequestAware{
private String uName, uPwd;
private UserService userService;
private HttpServletRequest request;
private HttpServletResponse response;

public String getUName() {
  return uName;
}
public void setUName(String name) {
  uName = name;
}
public String getUPwd() {
  return uPwd;
}
public void setUPwd(String pwd) {
  uPwd = pwd;
}
public UserService getUserService() {
  return userService;
}
public void setUserService(UserService userService) {
  this.userService = userService;
}
public HttpServletRequest getRequest() {
  return request;
}
public void setRequest(HttpServletRequest request) {
  this.request = request;
}
public HttpServletResponse getResponse() {
  return response;
}
public void setResponse(HttpServletResponse response) {
  this.response = response;
}
@Override
public String execute() {
  int user = userService.Login(uName, uPwd);
  
  try {
  if(user ==1){
  HttpSession session = request.getSession();
  session.setAttribute("user", user);
  response.getWriter().print("<login><info>1</info></login>");
  System.out.println(user + 1);
  }else{
  response.getWriter().print("<login><info>0</info></login>");
  System.out.println("have not this user");
  }
  } catch (IOException e) {
  e.printStackTrace();
  }
   
  return SUCCESS;
  }
public void setServletResponse(HttpServletResponse response) {
  this.response = response;
}
public void setServletRequest(HttpServletRequest request) {
  this.request = request;
}
}


flex:

<mx:Script>
  <![CDATA[
  import mx.managers.PopUpManager;
  import mx.rpc.events.ResultEvent;
  import mx.rpc.events.FaultEvent;
  import mx.controls.Alert;

public function resultHandle(event:ResultEvent): void{
  usersName.text=userLoginSev.lastResult.login.info;
  }
  public function faultHandle(event:FaultEvent): void{
  usersName.text=userLoginSev.lastResult.login.info;
  }
  ]]>
</mx:Script>

<mx:HTTPService id="userLoginSev" method="post" url="FlexERP/login.action" 
  result="resultHandle(event)"
  fault="faultHandle(event)">
  <mx:request xmlns="">
  <uName>{uName.text}</uName>
  <uPwd>{uPwd.text}</uPwd>
  </mx:request>
</mx:HTTPService>

[解决办法]
这样试试
usersName.text=userLoginSev.lastResult.login.info;
换成
var xml:XML = XML(userLoginSev.lastResult);// 可以debug看一下xml是否有值
usersName.text= xml.info;



如果上面var xml:XML = XML(userLoginSev.lastResult);得不到值,可能是java端有问题
[解决办法]
你debug看看是否有结果
[解决办法]

探讨
我是用lcds实现java和flex交互的,有没有可能是lcds过期而导致action里的值不能传送到页面呢?

热点排行