अब यहाँ ऊपर मेरी टिप्पणी में योजना के अनुसार ExternalRedirectView है (कुकीज़ की आवश्यकता होती है एक विकल्प नहीं है।) ... यह उस तरह से किया था।
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.view.RedirectView;
/** variant of RedirectView, will not add a session id to the url
*/
public class ExternalRedirectView extends RedirectView {
public ExternalRedirectView(String url, boolean contextRelative) {
super(url, contextRelative);
}
/** copied from @link{RedirectView#sendRedirect} and removed calls to
* reponse.encodeRedirectURL()
*/
@Override
protected void sendRedirect(HttpServletRequest request,
HttpServletResponse response, String targetUrl,
boolean http10Compatible) throws IOException {
if (http10Compatible) {
// Always send status code 302.
response.sendRedirect(targetUrl);
}
else {
// Correct HTTP status code is 303, in particular for POST requests.
response.setStatus(303);
response.setHeader("Location", targetUrl);
}
}
}
मैं भी पहले से ही अपने ही ViewResolver जिसमें मैं नई externalRedirect के लिए कार्यक्षमता जोड़ा था: जादू Vier नाम उपसर्ग, जो अब पढ़ता है:
class MyViewResolver extends AbstractCachingViewResolver implements BeanFactoryAware {
[...]
private static final String EXTERNAL_REDIRECT_URL_PREFIX = "externalRedirect:";
[...]
@Override
protected View loadView(String viewName, Locale locale) throws Exception {
View view;
if (viewName.startsWith(UrlBasedViewResolver.REDIRECT_URL_PREFIX))
{
view = new RedirectView(viewName.substring(UrlBasedViewResolver.REDIRECT_URL_PREFIX.length()), true);
}
else if (viewName.startsWith(EXTERNAL_REDIRECT_URL_PREFIX))
{
view = new ExternalRedirectView(viewName.substring(EXTERNAL_REDIRECT_URL_PREFIX.length()), true);
}
else
[...] हर किसी के लिए धन्यवाद जिन्होंने इसे पढ़ा और इसके बारे में सोचा।
स्रोत
2010-06-09 13:02:24
'' RedirectView' response.encodeURL() 'फोन नहीं है, यह कहता है' response.encodeRedirectURL() ' – skaffman
ठीक है, धन्यवाद। प्रश्न में यह सही है। –
मानक 'रीडायरेक्ट व्यू' के लिए आप अलग-अलग 'बाहरी रीडायरेक्ट व्यू' को कैसे लागू करेंगे? – skaffman