InternalResourceViewResolver
を使用すると、エクスポートBeanの説明をjspコンテキストに使用できます。 someBean
はBeanの名前であるあなたは、コンテキストをJSPにエクスポートしたい
...
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
<property name="exposedContextBeanNames">
<list>
<value>someBean</value>
</list>
</property>
</bean>
...
:あなたは豆のリストを公開したい場合たとえば、あなたはあなたの中にdispatcher-servlet.xml
次の方法をビューリゾルバを設定する必要があります。これは、あなたがBeanの名前でJSPコンテキストから豆を春にアクセスすることができます
...
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
<property name="exposeContextBeansAsAttributes" value="true"/>
</bean>
...
:あなたもすべて春の豆を公開することができます。
は、あなたのタグのハンドラは、次のようになりますとしましょう:
package com.mytags;
public class SomeTag extends SimpleTagSupport {
private SomeBean bean;
@Override
public void doTag() throws JspException, IOException {
getJspContext().getOut().write(bean.doSomething());
}
public SomeBean getBean(){...}
public void setBean(SomeBean bean){...}
}
次にTLDにあなたのタグを説明する次の方法:
...
<tag>
<name>someTag</name>
<tag-class>com.mytags.SomeTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>bean</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>com.mybeans.SomeBean</type>
</attribute>
</tag>
...
注意、あなたはので、true
としてrtexprvalue
を指定する必要があることあなたはEL式としてタグにbeanを渡します。今、あなたは、JSPでこのタグを使用することができます。
<%@ taglib prefix="mytags" uri="http://mytags.com" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
</head>
<body>
<mytags:someTag bean="${someBean}"/>
</body>
</html>
しかし、実際には右の直接タグのハンドラからのSpring Beanにアクセスするために、良いアイデアではありません。タグはデータを表示する方法を知っている必要がありますが、このデータを取得する方法から抽象化する必要があります。コントローラで表示したいすべてのデータを準備し、jspにモデルとして渡します。
私が探しているような包括的な答えを書こうとしてくれてありがとう。 – Snickers3192