2011-08-30 15 views
8

जेएसपी (profile में नीचे उदाहरण में) में देखने का नाम एक्सेस करने का कोई तरीका है या मुझे यह नाम मॉडल में जोड़ना होगा?वसंत एमवीसी: जेएसपी में व्यू-नाम कैसे प्राप्त करें?

@RequestMapping(value="/user/account", method=RequestMethod.GET) 
    return "profile"; 
} 

उत्तर

1

आप कर सकते हैं यह नीचे दिखाया गया है jsp पेज में एक दृश्य के नाम हो:

${pageContext.request.servletPath} 
+0

यह काम नहीं करता है। यह लौटाता है: '/ WEB-INF/pages/profile.jsp', लेकिन इसके लिए 'प्रोफ़ाइल' – marioosh

+0

क्षमा करें, मुझे एक और तरीका पता नहीं है सिवाय इसके कि आपने पहले से ही अपने प्रारंभिक संदेश में वर्णित किया है। बीटीडब्ल्यू, जब मैं इसे अपने दृश्य –

8

$ {requestScope [ 'javax.servlet.forward.servlet_path']}

+0

पर देखना चाहता हूं तो मैं हमेशा दृश्य नाम को मॉडल में डालता हूं इसे उत्तर के रूप में फ़्लैग किया जाना चाहिए! – yglodt

+0

मुझे अनुरोध मिलता हैस्कोप शून्य है, अपवाद संदेश "शून्य मान में अनुक्रमित नहीं हो सकता है" – cmaduro

15

मैं भाग गया हाल ही में इसी समस्या में। इस समस्या को हल करने का एक आधिकारिक तरीका हो सकता है, लेकिन मुझे यह नहीं मिला। मेरा समाधान मॉडल में दृश्य नाम रखने के लिए एक इंटरसेप्टर बनाना था।

मेरे इंटरसेप्टर बहुत सरल है:

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 

public class ViewNameInModelInterceptor extends HandlerInterceptorAdapter { 

    @Override 
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, 
      ModelAndView modelAndView) throws Exception { 

     if (modelAndView != null) { 
      modelAndView.addObject("springViewName", modelAndView.getViewName()); 
     } 
     super.postHandle(request, response, handler, modelAndView); 
    } 

} 

और वसंत config में यह दर्ज की, यह भी बहुत सरल (नाम स्थान विन्यास का उपयोग) है: बस लोगों की है कि के लिए खोज करेंगे के लिए

<mvc:interceptors> 
    <beans:bean class="ViewNameInModelInterceptor" /> 
</mvc:interceptors> 
3

थाइमेलीफ समाधान:

${#httpServletRequest.getServletPath()} 
+0

@Cyrils उत्तर के समान: लौटा दृश्य नाम के बजाय पथ लौटाता है। – dtrunk

+0

मेरे लिए ठीक काम करता है! इसके लिए धन्यवाद! – Roland

संबंधित मुद्दे