Spring mvc 3.0 retスタイルSpring mvcはvelocity(二)に配合されています.
6024 ワード
Spring mvc 3.0 retスタイルSpring mvc入門(一)は簡単なrestスタイルを作るためにはどうすればいいかをすでに話しました.
次に、どのようにspring mvc 3でvelocityテンプレートをサポートしますか?
(一)では、私が設定したview Resoloverはorg.springframe ewek.web.servlet.view.JstlViewです.これは普通のJstl形式のビューです.
私たちはもうすぐ
上のxmlの中にも最高のコードフォーマットを配置して、resource LoaderPathという属性に注意してください.私が配置しているのは/WEB-INF/velo/です.彼はデフォルトでこのカタログの下に行って*.vm形式のファイルを探してください.vievoverの中のprefixの原因はここに配置されているからです.
view Resovelerの中で再度WEB-INF/velo/を配置すると、要請の時に/WEB-INF/veloc/ディレクトリの下でwelcome.vmファイルが見つかりません.
上に配置してから
テストクラスを書きます
上はcontrollerです.
次はvelocityテンプレートで、簡単な循環の例です.
以下はheadtitle.vmの例だけです.比較的簡単です.皆さん、笑わないでください.
保存してからサーバを起動します.
入力:http://localhost:8080/Proj/welcome/ordinary これで完全なhtmlテンプレートが見えます.
下の図は添付ファイルを参照してください
次に、どのようにspring mvc 3でvelocityテンプレートをサポートしますか?
(一)では、私が設定したview Resoloverはorg.springframe ewek.web.servlet.view.JstlViewです.これは普通のJstl形式のビューです.
私たちはもうすぐ
<bean id="viewResolver" class="org.springframework.web.servlet.view.JstlView">
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
</bean>
に変更する<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
<property name="contentType"><value>text/html;charset=UTF-8</value></property>
</bean><!-- prefix , velocity 。 .jsp .vm , contentType
, -->
また、velocityは、もう一つの構成が必要です.spring velocityの保存テンプレートを教えてくれるところです.<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/velo/"/>
<property name= "velocityProperties">
<props>
<prop key="input.encoding">utf-8</prop>
<prop key="output.encoding">utf-8</prop>
</props>
</property>
</bean>
上のxmlの中にも最高のコードフォーマットを配置して、resource LoaderPathという属性に注意してください.私が配置しているのは/WEB-INF/velo/です.彼はデフォルトでこのカタログの下に行って*.vm形式のファイルを探してください.vievoverの中のprefixの原因はここに配置されているからです.
view Resovelerの中で再度WEB-INF/velo/を配置すると、要請の時に/WEB-INF/veloc/ディレクトリの下でwelcome.vmファイルが見つかりません.
上に配置してから
テストクラスを書きます
@Controller
public class Welcome {
@RequestMapping(value ="/welcome/user")
public ModelAndView welcome(HttpServletRequest request,HttpServletResponse response,
ModelMap modelMap) {
return new ModelAndView("welcome",modelMap);
//
}
@RequestMapping(value ="/welcome/ordinary")
public ModelAndView ordinary(HttpServletRequest request,HttpServletResponse response,
ModelMap modelMap) {
//velocity
List<String> strlist = new ArrayList<String>();
for(int i=0;i<10;i++) {
strlist.add("list "+i);
}
modelMap.put("strlist", strlist);
Map<String,String> map = new HashMap<String,String>();
for(int i=0;i<10;i++) {
map.put("zifu"+i, "map "+i);
}
map.put(null, " ");
modelMap.put("map", map);
List<User> objlist = new Stack<User>();
for(int i=0;i<10;i++) {
objlist.add(new User("name"+i,"nick"+i));
}
modelMap.put("uselist", objlist);
return new ModelAndView("ordinary",modelMap);
}
public class User {
private String username;
private String nickname;
public User(String username, String nickname) {
this.username = username;
this.nickname = nickname;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}
}
上はcontrollerです.
次はvelocityテンプレートで、簡単な循環の例です.
<html>
<head>
<title>Oridnary</title>
</head>
<body>
#include("style/headtitle.vm")
<div>
<img alt=" " src="../im/xiao.gif">
</div>
<div>
<div style="border:1px dashed black;width:300px;float:left;margin-left:10px;padding-left:10px;">
strlist:
<div>
<ul>
#foreach($str in $strlist)
<li>${str}</li>
#end
</ul>
</div>
</div>
<div style="border:1px dashed black;width:300px;float:left;margin-left:10px;padding-left:10px;">
map:
<div>
<ul>
#foreach($ma in $map.entrySet())
<li>$!{ma.key}-${ma.value}</li>
#end
</ul>
</div>
</div>
<div style="border:1px dashed black;width:300px;float:left;margin-left:10px;padding-left:10px;">
object:
<div>
<ul>
#foreach($user in $uselist)
<li>${user.username}-${user.nickname}</li>
#end
</ul>
</div>
</div>
</div>
</body>
</html>
以下はheadtitle.vmの例だけです.比較的簡単です.皆さん、笑わないでください.
<div>
</div>
保存してからサーバを起動します.
入力:http://localhost:8080/Proj/welcome/ordinary これで完全なhtmlテンプレートが見えます.
下の図は添付ファイルを参照してください