두 개의 개별 프로젝트 (어쩌면 다른 서버)에 두 개의 JSF/JSF 페이지 및 연관된 관리 빈 BackingBeanA.java 및 BackingBeanB.java를 사용하여 PageA.jsp 및 PageB.jsp로 이름을 지정하십시오.별도의 프로젝트에서 JSF 페이지 간 데이터 전송
BackingBeanA.java
public String startPageB() {
try {
FilterData filterData = ...
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)
facesContext.getExternalContext().getRequest();
request.setAttribute("FILTERDATA",filterData);
ExternalContext externalContext = facesContext.getExternalContext();
externalContext.setRequest(request);
externalContext.redirect("http://localhost:8080/PageB/");
}
catch (IOException e) {
e.printStackTrace();
System.out.println(e);
}
return "redirectedData";
}
,174 : 분리 프로젝트)
욕망 PageB.jsp에 PageA.jsp로부터 리디렉션 오브젝트 (의 FilterData)
다음 시도한 통과하는
BackingBeanB.java (별도의 프로젝트로, 별도의 서버 수)
public String getBeanAData() {
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)
facesContext.getExternalContext().getRequest();
FilterData newFilterData = (FilterData)
request.getAttribute("FILTERDATA");
... do stuff
return null;
}
결과 : getBeanAData이라고합니다 그러나 : 의 FilterData는 BackingBeanA에서 null이 아니었지만, BackingBeanB에 널 (null) - 데이터가 아니었다 양도.
이 데이터 전달을 올바르게 수행하는 방법에 대한 아이디어가 있으십니까?
나는 원래의 질문에 포함해야하는 것 :
자바 1.6.0_22-B03 JSF 1.2 1.2 이클립스 3.6.0 (헬리오스) 톰캣 6.0.28이 (실행해야 JSTL 또한 IE 7.0.5730.13 파이어 폭스) 웹 로직에 : 어떤 HTTP 원하는 없습니다 (하지만 가능 가능하면 3.6.12
시도는) 순수한 JSF로, 아니 자바 스크립트 (기간). 이 위대한 작품을
...
String ownerName = (String) FacesContext.getCurrentInstance().
getExternalContext().getRequestParameterMap().get("ValueB");
String itemId = (String) FacesContext.getCurrentInstance().
getExternalContext().getRequestParameterMap().get("ValueA");
...
결과는 - 리디렉션 웹 페이지에서
...
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
String initialUrl = externalContext.getInitParameter("RedirectUrl");
String requestDataA = "?ValueA=" + activity.getID();
String requestDataB = "&ValueB=" + activity.getName();
redirectUrl = initialUrl + requestDataA + requestDataB;
externalContext.redirect(redirectUrl);
...
- 부모 웹 페이지에서
: 나는 (지금은 충분) 문제를 해결하는 방법
- 문자열의 경우. 지금은 괜찮습니다.
The same thing, but passing an object.
I know I cannot do that on the request line, but I thought there was a way
similar to a standard HTTP setup where a request attribute is set and the
destination page gets it with a doPost method (do I have this wrong?).
The BalusC answer indicates this is not possible.
So is it really not possible to have a JSF page redirect (starup or whatever)
to an external page, and pass it an object without going to shared storage?
덕분에, 존
(주, 당신이 대신
faces-config.xml
에서<managed-property>
필요 JSF 1.x의를 위해, JSF 2.0를 가정하고) 당신은 따라서 실제로 "별도의 웹 애플리케이션 컨텍스트를"의미? – BalusC