av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

java語(yǔ)言

springmvc如何設(shè)置多視圖器呢

時(shí)間:2025-02-21 10:30:06 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

springmvc如何設(shè)置多視圖器呢

  導(dǎo)語(yǔ):springmvc如何設(shè)置多視圖器呢?下面是小編給大家整體的代碼,大家可以參考練習(xí),更多詳情請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)。

  在做頁(yè)面靜態(tài)化處理時(shí),有時(shí)候我們需要 兩種或者兩種以上的視圖解析方式,比如 jsp,html,json,jstl,ftl等等,顯然默認(rèn)的 springmvc 只配置一種視圖解析方式是滿足不了我們的,但是放心,springmvc提供了配置多視圖解析的方式:

  比如:一種視圖解析用來(lái) 解析 freemarker靜態(tài)化后的html,另一種視圖解析用來(lái)解析 jsp(jstl)

  網(wǎng)上好多方式都有提到用 order 來(lái)設(shè)置解析器的優(yōu)先級(jí),但經(jīng)試驗(yàn),優(yōu)先級(jí)低的還是生效不了,不知道是否有其他的解決方法?最終查看源碼才發(fā)現(xiàn)原來(lái)springmvc 只給我們提供了 待我們重寫的方法,看源碼:

  /*** Eclipse Class Decompiler plugin, copyright (c) 2012 Chao Chen (cnfree2000@hotmail.com) ***/

  package org.springframework.web.servlet.view;

  import java.util.Locale;

  import org.springframework.beans.factory.InitializingBean;

  public abstract class AbstractUrlBasedView extends AbstractView implements

  InitializingBean {

  private String url;

  protected AbstractUrlBasedView() {

  }

  protected AbstractUrlBasedView(String url) {

  this.url = url;

  }

  public void setUrl(String url) {

  this.url = url;

  }

  public String getUrl() {

  return this.url;

  }

  public void afterPropertiesSet() throws Exception {

  if ((isUrlRequired()) && (getUrl() == null))

  throw new IllegalArgumentException("Property 'url' is required");

  }

  protected boolean isUrlRequired() {

  return true;

  }

  <span style="background-color: rgb(255, 255, 204);">public boolean checkResource(Locale locale) throws Exception {

  return true;

  }</span>

  public String toString() {

  StringBuilder sb = new StringBuilder(super.toString());

  sb.append("; URL [").append(getUrl()).append("]");

  return sb.toString();

  }

  }  /*** Eclipse Class Decompiler plugin, copyright (c) 2012 Chao Chen (cnfree2000@hotmail.com) ***/

  package org.springframework.web.servlet.view;

  import java.util.Locale;

  import org.springframework.beans.factory.InitializingBean;

  public abstract class AbstractUrlBasedView extends AbstractView implements

  InitializingBean {

  private String url;

  protected AbstractUrlBasedView() {

  }

  protected AbstractUrlBasedView(String url) {

  this.url = url;

  }

  public void setUrl(String url) {

  this.url = url;

  }

  public String getUrl() {

  return this.url;

  }

  public void afterPropertiesSet() throws Exception {

  if ((isUrlRequired()) && (getUrl() == null))

  throw new IllegalArgumentException("Property 'url' is required");

  }

  protected boolean isUrlRequired() {

  return true;

  }

  <span style="background-color: rgb(255, 255, 204);">public boolean checkResource(Locale locale) throws Exception {

  return true;

  }</span>

  public String toString() {

  StringBuilder sb = new StringBuilder(super.toString());

  sb.append("; URL [").append(getUrl()).append("]");

  return sb.toString();

  }

  }

  所以怎么做就很明確了:

  第一步:新建一個(gè)html的解析器并繼承 InternalResourceView 后重寫 checkResource

  package com.izhbg.typz.common.springmvc.view;

  import java.io.File;

  import java.util.Locale;

  import org.springframework.web.servlet.view.InternalResourceView;

  /**

  *

  * @ClassName: HtmlResourceView

  * @author caixl

  * @date 2016-6-8 上午11:01:41

  *

  */

  public class HtmlResourceView extends InternalResourceView {

  @Override

  public boolean checkResource(Locale locale) {

  File file = new File(this.getServletContext().getRealPath("/") + getUrl());

  return file.exists();// 判斷該頁(yè)面是否存在

  }

  }

  package com.izhbg.typz.common.springmvc.view;

  import java.io.File;

  import java.util.Locale;

  import org.springframework.web.servlet.view.InternalResourceView;

  /**

  *

  * @ClassName: HtmlResourceView

  * @author caixl

  * @date 2016-6-8 上午11:01:41

  *

  */

  public class HtmlResourceView extends InternalResourceView {

  @Override

  public boolean checkResource(Locale locale) {

  File file = new File(this.getServletContext().getRealPath("/") + getUrl());

  return file.exists();// 判斷該頁(yè)面是否存在

  }

  }

  第二步:在xml配置文件中 指定解析器的 viewClass為該解析類

  <!-- 定義HTML文件的位置 -->

  <bean id="htmlviewResolver"

  class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  <property name="viewClass" value="com.izhbg.typz.common.springmvc.view.HtmlResourceView"/>

  <property name="order" value="0" />

  <property name="prefix" value="/cms/"/>

  <property name="suffix" value=".html" />

  <property name="contentType" value="text/html;charset=UTF-8"></property>

  </bean>

  <!-- 定義JSP文件的位置 -->

  <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  <property name="order" value="1" />

  <property name="prefix" value="/views/"/>

  <property name="suffix" value=".jsp"/>

  </bean>

  <!-- 定義HTML文件的位置 -->

  <bean id="htmlviewResolver"

  class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  <property name="viewClass" value="com.izhbg.typz.common.springmvc.view.HtmlResourceView"/>

  <property name="order" value="0" />

  <property name="prefix" value="/cms/"/>

  <property name="suffix" value=".html" />

  <property name="contentType" value="text/html;charset=UTF-8"></property>

  </bean>

  <!-- 定義JSP文件的位置 -->

  <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  <property name="order" value="1" />

  <property name="prefix" value="/views/"/>

  <property name="suffix" value=".jsp"/>

  </bean>


【springmvc如何設(shè)置多視圖器呢】相關(guān)文章:

springmvc如何整合freemarker 并且兼容jsp 視圖08-18

顯示器如何設(shè)置07-14

無(wú)限路由器如何設(shè)置10-14

如何設(shè)置路由器限速08-05

小米路由器如何設(shè)置07-07

路由器如何設(shè)置wifi密碼08-10

無(wú)限路由器如何設(shè)置連接10-01

如何設(shè)置無(wú)線路由器07-12

dns服務(wù)器地址如何設(shè)置10-14