カスタムビューの実装以来

それは、実装プロセスの自己定義されたビューであるので、我々は、ビューをカスタマイズする必要があります。

ここでは、例として、カスタムビューMYVIEWであります:

import java.io.PrintWriter;
import java.util.Map;

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

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.View;

@Component
public class MyView implements View {

	public String getContentType() {
		return "text/html";
	}

	public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		PrintWriter out = response.getWriter();
		out.println("Hello View");
		out.flush();
		out.close();
	}
}

その後、application.xmlの構成は、コンテナIOCにそれを置きます。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
	p:prefix="/WEB-INF/view/" p:suffix=".jsp"></bean>

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="0"></bean>

ビュー名で、その後、コントローラに戻ります。

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UserInfoController {

	@RequestMapping("userinfo/toView.do")
	public String toView(Map<String,Object> map) {
		map.put("name", "Tom");
		return "myView";
	}
}

次の図へのWebアクセス:

         

その後、我々は、ソースコード(デバッグモード)を見てみましょう。

:私の以前のブログによると、要求の* .doという実行  ショー:プロセスの要求が実行されますdoDispatchの方法を、私たちは始めたこの時間はdoDispatch方法から見て:

この時のMV MV情報について、当社のマウスの実行が表示された後、情報のMVへのアクセスのコードを実行するための最初の赤いボックス:

我々は、ビューMVで取得されたモデルデータ(クラス名の最初の文字を小文字からデフォルトのカスタム・ビュー・クラス)から名前を定義し、第2の赤いボックスでコードが実行されるprocessDispatchResult方法コードは以下の通りである実行します。

赤いボックスの一部は、文が、プログラムが異常であるか否かを判定した場合、異常がない、赤い線は、その後、次のようにコードである方法を、レンダリングが行われます。

最初のコードを実行するには、赤いボックス、我々は、ビューオブジェクトを取得する必要があり、次のようにresolveViewNameは、このように行われ、メソッドのコードは次のとおりです。

ビューの解像度設定されたクラスを横断、ビューの解像度を見つけるために必要なクラス。

マウスオーバー  this.viewResolvers  最初のビューは、カスタム・パーサー・クラスである;次に実行我々は、クラスコンフィギュレーションを解析我々の2つのビューを見つける  resolveViewNameの方法を、図resolveViewName方法で、すなわち、第二赤線、メソッドの継承をでBeanNameViewResolverのクラス(カスタムビューを解析するクラス)として、次のとおりです。

该方法将返回获取的视图对象;于是便回到上图 render 方法的第二个红框处,我们可以看到,此时的 view 对象已是我们的自定义视图对象:

然后执行我们自定义视图的 render 方法,即我们写的方法,输出结果:

 

发布了99 篇原创文章 · 获赞 3 · 访问量 1203

おすすめ

転載: blog.csdn.net/qq_44971038/article/details/104556163