struts2的項目移到springmvc上

今天蛋疼了。項目須要,一個原先用struts2的項目要移到一個springmvc框架的項目上。以前覺得很簡單,原先的action換成controller,DAO換成service就行,沒想到作的時候發現最大的難點是之前jsp都用的struts2標籤寫的。若是用springmvc的話我只會用ext在js裏那種寫法。根本不適合原先的jsp+jquery的用法。最鬧聽的是讓我不用struts標籤我就不會了啊。 java

好了吐槽完畢,搗鼓了一天,有了眉目,還沒弄完,不過今天搞的信息量超大。停下來記錄備忘下。 jquery

今天的內容是怎麼搭建一個可使用struts標籤的項目 web

1 經過mvn引入struts相關的jar包,mvn組織項目及打包是真心好用 spring

<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts2-core</artifactId>
		<version>2.1.6</version>
</dependency>
2 配置web.xml,主要是用來攔截,否則jsp在解析到struts標籤的時候會報錯。錯誤信息很好認,有錯的時候就看看web.xml的filter有沒有配置。

<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
</filter-mapping>
3 而後就是在jsp頁面裏引入struts2標籤

<%@ taglib uri="/struts-tags" prefix="s" %>
4 接下來就是後臺的代碼,主要就是springmvc的簡單用法,測試沒用到serivce層,數據直接寫到controller裏了

@RequestMapping(params = "event=main")
    public ModelAndView display(HttpServletRequest request,HttpServletResponse response) {
        ModelAndView view = new ModelAndView("/askdba/test.jsp");
        List<String> list=new ArrayList<String>();
        list.add("123");
        list.add("234");
        list.add("345");
        view.addObject("list",list);
        view.addObject("testString","asdfasdfasdfadsfads");
        return view;
    }

5 再而後就是我糾結的地方了 shell

以前struts的用法是action中直接設置變量並給出getter和setter,而後前臺用s:proptery標籤直接顯示就行 apache

可是springmvc裏設置getter和setter前臺都不認啊。 json

因而乎打開s:debug標籤,打開s:debug標籤的方法以下: mvc

<s:debug></s:debug>
而後我就發現,原來view addObject的內容都在request中,因而前臺代碼用struts標籤改寫成

<s:iterator var="s" value="#request.list">
          <s:property value="s"></s:property>
        <br>
    </s:iterator>
    s:標籤:<s:property value="#request.testString"></s:property>

目前要作的就是把原先jsp裏的s標籤的內容都從request中取得便可,終於避免了原先前臺重寫的厄運。 app

總結一下,以前一直都是用struts的框架,後來項目須要用了springmvc,真心以爲springmvc強大。可是前臺的展現就不給力了,由於結果和json結合還好,遇到歷史項目的時候須要在前臺展現變量除了jsp直接寫java代碼和jstl C標籤就沒別的方法了。 框架

相關文章
相關標籤/搜索