❶ springmvc已經配置了視圖解析,為什麼訪問url後返回的是字元串,而不是jsp頁面
樓上的答案是正解,我想補充一下@ResponseBody的作用
作用: 該註解用於將Controller的方專法返回的對象,屬通過適當的HttpMessageConverter轉換為指定格式後,寫入到Response對象的body數據區。
使用時機: 返回的數據不是html標簽的頁面,而是其他某種格式的數據時(如json、xml等)使用;
如果返回到頁面是map或者json或者list等,加上@ResponseBody准沒錯,如果你想跳轉到一個頁面,那麼千萬別加@ResponseBody,因為這個註解會將你返回的東西放到response的body數據中去,換句話說,你返回的頁面將以字元串的形式寫到頁面上,而不是跳轉到這個頁面!
❷ 使用springboot怎麼跳轉jsp頁面
1. 配置pom.xml
a. html配置和jsp配置沖突,如果配置jsp支持,就要刪除html支持
b. tomcat-embed-jasper必須使用版本號,不能使用provided
<!--支持html-->
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-thymeleaf</artifactId>-->
<!--</dependency>-->
<!-- jsp標簽庫 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>7.0.59</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
2. 配置application.properties
#在application.properties中配置jsp設置#目錄對應src/main/webapp下spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
3. 配置webapp
a. src/main目錄下創建文件夾webapp
b. File->ProjectStructure->ProjectSetting->Moles
![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191009155439850.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_==,size_16,color_FFFFFF,t_70 =600x250)
`注意DeploymentDescriptors下面的路徑要指向webapp文件下`
c. 創建jsp文件夾,結果:
![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191009155735492.png)
4. 編寫jsp
jsp文件夾下創建test.jsp1
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>
<title>Title</title></head><body><h1 style="color: red">Hello World</h1></body></html>
5. 編寫java代碼
/**
* 返回jsp頁面
* */@Controllerpublic class UserController {
@RequestMapping("/")
public String hello() {
System.out.print("bbbbbb\n");
return "test";
}}
❸ springmvc如何從控制器的方法里跳到某個jsp頁面
你現在這樣好像都沒有回跳吧,spring return的地址默認是在WEB-INF下了,不會按你寫的專跳你,你可以在spring配置文件屬,配置一下視圖,如下:
<!-- 默認的視圖解析配置 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp"></property>
</bean>
可以按你想跳的地址配置,希望對你有所幫助。
❹ springmvc怎麼跳轉到web-inf下的jsp
查看了不少回答,結合自己解決的方法,總結下容易出問題的地方
環境:spring 4.2.1.RELEASE
1、applicationMvc.xml配置,紅色位置容易出錯
<!-- 對模型視圖添加前後綴 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
2、web.xml配置,紅色位置注意反斜杠後沒有*(注意這里容易出錯)
<!-- spring MVC 配置 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationMvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3、Controller,注意紅色位置componentList前面沒有反斜杠
要訪問的路徑是/WEB-INF/jsp/componentList.jsp
@RequestMapping(value="/page")
public String page(HttpSession session) throws IOException{
return "componentList";
}
❺ springMVC中怎麼從controller層既能跳轉到jsp又能跳轉到html頁面
這個不可以的啊,要麼跳轉jsp,要麼跳轉html,有一種辦法就是jsp裡面用jsp重定向html頁面。
❻ springmvc 配置了跳轉到jsp頁面 怎麼實現跳轉到html頁面
先看controller:
@(value = "/{id}/view", method = RequestMethod.GET, proces = "text/html")
public String getPostByIdHtml( @PathVariable String id) throws IOException {
return "/resources/Post.html";
}
再看配置:
@Configuration
@EnableWebMvc
@EnableTransactionManagement
@ComponentScan({ "com.my.web.api"})
@ImportResource("classpath:db-context.xml")
public class ApiServletConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Bean
public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setPrefix("/resources/");
internalResourceViewResolver.setSuffix("*.html");
return internalResourceViewResolver;
}
}
❼ 各位大神,springmvc自定義攔截器沒有攔截到後台的jsp頁面,如何解決這個問題
會提交的時候也要以/admin/*.jsp的方式提交啊
如果這樣不行,你可以攔截所有版請求,然後再攔截器裡面權判斷url裡面是否有你需要攔截的url地址,如果有的話就可以跳轉到制定的頁面,如果沒有放行就行了。
//獲取當前的Url地址
preHandle方法裡面:
String requestUrl = request.getRequestURI().replace(request.getContextPath(), "");
判斷這個requestUrl
❽ spring mvc 怎麼指向jsp頁面
spring mvc 指向jsp頁面的方法是利用視圖解析器。
1 UrlBasedViewResolver:它是對ViewResolver的一種簡單實現,而且繼承了AbstractCachingViewResolver,主要就是提供的一種拼接URL的方式來解析視圖,它可以讓我們通過prefix屬性指定一個指定的前綴,通過suffix屬性指定一個指定的後綴,然後把返回的邏輯視圖名稱加上指定的前綴和後綴就是指定的視圖URL了。
下面是一段UrlBasedViewResolver的定義,根據該定義,當返回的邏輯視圖名稱是test的時候,UrlBasedViewResolver將把邏輯視圖名稱加上定義好的前綴和後綴,即「/WEB-INF/test.jsp」,然後新建一個viewClass屬性指定的視圖類型予以返回,即返回一個url為「/WEB-INF/test.jsp」的InternalResourceView對象。
<bean
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="prefix" value="/WEB-INF/" /> 指定路徑
<property name="suffix" value=".jsp" /> 指定jsp為後綴
<property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/> 指定視圖轉向類
</bean>
在前端頁面編寫以下controller:
@RequestMapping("testResourceBundle")
public String testResourceBundle() {
return "test";
}
默認跳轉到/WEB-INF/test.jsp頁面,完成整個頁面交互
❾ springMVC一個controller跳轉到另一個controller後再跳轉到另一個jsp頁面,提示伺服器響應錯誤
request.getServletContext().getRequestDispatcher("/biz/getAccount.do?userID=" + loginName+&userPwd=" + loginPwd).forward(request, response);
後面應該直接return null,不能再return new ModelAndView跳轉專了吧屬
❿ spring mvc怎麼跳轉到jsp
你現在這樣好像都沒有回跳吧,spring return的地址默認是在WEB-INF下了,不會按你寫的跳專你,你可以在spring配置文屬件,配置一下視圖,如下:
<!-- 默認的視圖解析配置 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp"></property>
</bean>