2011-10-03 4 views
3

나는 여러 국제화 URL로 리디렉션해야하는 응용 프로그램, 즉Struts2 - 국제화 된 URL을 생성하는 방법은 무엇입니까?

  • www.mydomain.com/us/myapp/xxx.action
  • www.mydomain.com/fi/myapp/xxx 있습니다. 액션
  • dwww.mydomain.com/de/myapp/xxx.action

우리는 URL이 =/xxx.action? 국가의 MyApp 우리를 매핑 응용 프로그램 서버로 리디렉션 프록시 서버가 있습니다. 문제는 위의 형식으로 다음 작업으로 리디렉션하는 방법입니다.

이제 url에서 국가를 사용하고 컨텍스트 경로 및 작업 이름을 추가하고 jsp에서 javascript로 열면 다음 작업을위한 url이 생성됩니다.

예 :

<body onload="javascript:top.location='${generatedPath}';return true;"></body> 

예 양식을 제출

<s:form id="form" action="%{generatedPath}" theme="simple" method="post" includeContext="false"> 

덜 hackish 방법으로이 작업을 수행 하시겠습니까하고, struts.xml 및 유형의 redirectAction와 비트를 테스트했지만 수 없습니다 컨텍스트 경로 앞의 국가와 함께 위의 URL을 생성 할 수있는 것 같습니다. struts2 설명서를 찾지 못했지만 올바른 위치를 찾고 있는지 확실하지 않습니다. 다른 곳에서 처리해야합니까?

답변

0

나는 다음과 같은 논의는 당신을 도울 수 있다고 생각 : 작업이 될 것

<result name="redirect" type="redirect">${url}</result> 

그리고 : 같은

여기 How to do dynamic URL redirects in Struts 2?

, 당신의 결과를 볼 것이다

private String url; 
private String country; 

public void setCountry(String country) { 
    this.country = country; 
} 

public String getUrl() 
{ 
return url; 
} 

public String execute() 
{ 
url = "www.mydomain.com/" + country + "/myapp/xxx.action"; 
return "redirect"; 
} 
+0

답장을 보내 주셔서 감사합니다. 그 토론을 보았고,' \t \t \t \t <매개 변수 이름 거짓 code' <결과 유형 = "redirectAction"> \t \t \t \t <매개 변수 이름 = "prependServletContext을">를 사용하여, 비슷한 방식으로 구현 만난다 = "actionName"> $ {generatedPath} \t \t \t'code'. 이것은 잘 작동하고 우리가 이전에했던 것보다 훨씬 낫지 만, 이렇게 URL에 로케일을 다루는 표준 방법이 있는지 궁금해하고 있습니다 ... – user976308

+0

죄송합니다. false = $ {generatedPath}' false < – user976308

관련 문제