Bunun bir noob sorusu olduğundan eminim, ve bir saatin daha iyi bir kısmını, bir yanıt için trol atma traktını harcadım ama kimse benim durumum gibi görünmüyor. go ...Spring MVC'de REST ve JSP'yi karıştırma, JSP'yi bulamıyorsunuz
Bahar MVC kullanan yeni bir webapp var. Uygulamanın çoğu (% 99) saf REST'tir, bu nedenle "view" gibi bir şey yoktur, ancak JSON'u tele geri gönderir veya hatalar için alternatif bir HTTP Durumu gönderir.
Özel durum gerçek bir JSP olması gereken giriş sayfasıdır, ancak bir şekilde REST denetleyicileri eşleştirmek için kullandığım yapılandırma normal JSP eşlemelerinin başarısız olduğu bir durumda beni bırakıyor. İşte
bende ne var:benim memuru servlet yapılandırma, ilgili bölümleri şunlardır: çabalarımda
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
Çalıştırmak için, ben de bir eşleme eklemiş " Şu anda sadece benim giriş JSP yönlendirir HomeController": web.xml''deki,
<bean name="/" class="com.somepackage.HomeController"/>
Şimdi var:
<servlet>
<servlet-name>spring-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-dispatcher-servlet.xml
</param-value>
</context-param>
Bu şuna benzer benim RESTful denetleyicileri için çalışıyor: sadece bu gibi görünüyor
@Controller
@RequestMapping(value = "/api/user")
public class BlahBlahController {...
Benim "HomeController",: ı "vurduğunda
@Controller
@RequestMapping(value = "/")
public class HomeController extends AbstractController {
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
return new ModelAndView("login");
}
}
tetiklenir IS/"url, ancak bu hatayı günlüklerde aldım:
Şimdi söylediklerimi anlıyorum, /WEB-INF/pages/login.jsp
'u nasıl çözeceğini bilmez (bu sayfa var btw), ancak bunu işe almak için işleri değiştirmem gerektiğine dair takılıyorum.
Çalışması gereken şey hakkında biraz kafam karışık. Herhangi bir ipucu olan var mı?
Teşekkürler.
Ben bu konularda emin değilim, ama neden iki kez görünümü çözümleyicinizi tanımladık? Ediyorum Ayrıca, 'HomeController', '@ Controller' yerine' @ Component' ile açıklamalıdır. – NilsH
Oh .. lol .. evet yinelenen bir hatadır .. dediğin gibi önemli değil. @ Bileşen/@ Denetleyici ayrımı iyi tespit edildi, ben şimdi değiştireceğim ve tekrar deneyin. (Bu sorun, sorun devam ederse bu hataları düzeltmek üzere düzenlenmiştir) –
Yani .. Aşağıdaki hatayı alıyorum: HTTP için eşleşme bulunamadı URI ile istek [/] in ... Eşleme ile aynı hatayı alıyorum: URI [/WEB-INF/pages/login.jsp] ile HTTP isteği için hiçbir eşleşme bulunamadı ... Oradaki xml konfigürasyonuna sahip olmaktan nefret ediyorum. Herşeyi ek açıklama amaçlı kullanmayı tercih ediyorum ama yine de benim için çalışmıyor –