將jsp頁面轉爲html頁面

1.修改配置文件servlet,添加thymleaf解析器html

<!-- thymeleaf的視圖解析器 -->
	<bean id="templateResolver"
		class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
		<property name="prefix" value="/WEB-INF/html/" />
		<property name="suffix" value=".html" />  
		<property name="templateMode" value="HTML5" />
	</bean>
	<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
		<property name="templateResolver" ref="templateResolver" />
	</bean>
	<bean id="viewResolverThymeleaf" class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
		<property name="templateEngine" ref="templateEngine" />
		<property name="characterEncoding" value="UTF-8"/>
		<property name="order" value="0"/>
	</bean>

2.jsp頁面相關內容轉爲html可識別代碼,如java

<c:forEach items="${list}" var="user" varStatus="s">

<tr>
<td><a href="delete?userId=${user.userId}">${user.userId}</a></td>
<td>${user.userName}</td>
<td><a href="delete?userId=${user.userId}">Delete</a></td>
</tr>
</c:forEach>

轉爲spring

<div th:each="user,s:${list}">
<table>
<tr>
<td><a th:href="@{delete(userId=${user.userId})}"><span th:text="${user.userId}"></span></a></td>
<td><span th:text="${user.userName}"></span></td>
<td><span th:text="${user.userPassword}"></span></td>
<td><a th:href="@{delete(userId=${user.userId})}">delete</a></td>
</tr>
</table>
</div>

3.將thymleaf相關包導入(thymeleaf-2.1.4.RELEASE, thymeleaf-spring4-2.1.4.RELEASE. unbescape-1.1.0.RELEASE)sql

  • 注意:  html中的EL表達式沒法識別,須要經過th:方法數據庫

  • <meta charset="UTF-8"/>    <!-- 後面的結束符號 -->

4.經過網絡鏈接他人的數據庫網絡

  • 新建sql用戶(name隨便,Hostname-IP地址)jsp

  • 更改工程中數據庫鏈接的相關代碼ide

5.html頁面的頂部爲(第二句爲thymleaf的相關代碼)this

<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">

六、關於thymleaf解析器的配置的補充spa

對於返回的字符串,咱們會先對經過配置的thymeleaf來先判斷是否能夠解析爲一個HTML頁面,而後不能夠的時候就拋出錯誤,可是在咱們的項目中,咱們並無拋出異常,由於咱們在第一次解析中加入咱們自定義的一個類在cn.agriculture.common.component這個包中,這個類的代碼以下:

public class ThymeleafViewResolverEx extends ThymeleafViewResolver {	
@Override	
public View resolveViewName(String viewName, Locale locale) throws Exception {
ServletContextTemplateResolver servletContextTemplateResolver = 
       (ServletContextTemplateResolver)this.getWebApplicationContext().getBean("templateResolver");
servletContextTemplateResolver.initialize();		
String prefix = servletContextTemplateResolver.getPrefix().substring(1);
String suffix = servletContextTemplateResolver.getSuffix();
//String str = getClass().getResource("/").toString().replace("file:/", "")
.replace("/WEB-INF/classes/", "");	
//log.info("*****************************" + str);		
log.info("-----------------------------" + this.getServletContext().getRealPath("/"));		
File file = new File(this.getServletContext().getRealPath("/") + prefix + viewName + suffix);	
if (!file.exists()){			return null;		}	
return super.resolveViewName(viewName, locale);	}}

     在這個類的做用下,咱們能夠先對controller返回的一個字符串作HTML頁面的解析,在沒有相應的HTML頁面再進行Jsp的解析,即調用SpringMVC的內部視圖解析器。若咱們不須要這樣的幫助時,咱們能夠將第一段代碼中的最後一個bean的class屬性值選擇爲ThymeleafViewResolver的包名。

     當咱們由於類找不到時,咱們能夠經過複製類,而後按住 ctrl+shfit+t 來快捷提示對應的類的位置,而後將對應的包找到複製到咱們工程WebContent的WEB-INF文件夾下的lib中,這樣咱們能夠實現HTML的解析。

相關文章
相關標籤/搜索