spring mvc前端数据显示处理

1. 用例

在我们开发web程序中,web系统一般使用两种方式展示数据.

1.1 请求获得一个完整的页面. 

 在现实使用中比如,点击一个菜单,跳转到一个新的页面.或者打开一个新的标签页面.

1.2 请求获得一个json数据.

在现实使用中,如,点击查询按钮,返回一个json数据集合,或者修改数据请求,如删除某个数据.

2. 流程

2.1 请求服务器,服务器处理请求,产生一个完整的html页面.在浏览器中显示.

2.2 请求服务器,服务器查询数据或在处理请求产生json数据.并返回给浏览器,浏览器端使用javascript处理json数据,渲染到浏览器中显示数据.

3. 配置及类

3.1 web.xml配置

<servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/servlet-mvc.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


3.2 spring-mvc.xml配置

<!--接收url请求后处理逻辑通过jsp文件并返回html--->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    </bean>
<pre name="code" class="html">

 
<pre name="code" class="html"><!--接收url请求后处理逻辑返回json数据给浏览器-->
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> <property name="order" value="1"/>
  <property name="favorParameter" value="false"/> 
  <property name="ignoreAcceptHeader" value="true"/>   <property name="mediaTypes">
   <map> 
     <entry key="json" value="application/json"/> 
   </map> 
  </property> 
  <property name="defaultViews"> 
    <list> 
      <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
   </list> 
  </property> 
</bean>


 
3.3 jsp前端配置.

json数据请求路径如:

<form class="search-form" data-source="<c:url value="/sys/dic/list/data.json"/>">

3.4 controller例子

@RequestMapping("/sys")
@Controller
public class SystemController extends BaseController{
    @Resource
    private IDepService depService;
    //返回完整页面
    @RequestMapping("/dic/list")
    public ModelAndView showDicList(){
        ModelAndView modelAndView=getModelAndView("/system/dic/dic_list");
        modelAndView.addObject("list",dicService.findDictionaryDtoList());
        return modelAndView;
    }
    protected ModelAndView getModelAndViewOfJson(List list, int totalCount) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("status", true);
        modelAndView.addObject("pageSize", pageSize);
        modelAndView.addObject("total", totalCount);
        modelAndView.addObject("results", list);
        return modelAndView;
    } 
    //返回查询到的json数据
    @RequestMapping("/dic/list/data")
    public ModelAndView findDicListByTypeId(SearchDto dto){
        dto.setRemove(getCurrentUser().containsAuthorities("sys_dic_rm"));
        Pagination<SearchDto> pagination = new Pagination<SearchDto>(1, pageSize, dto);
        List<DictionaryDto> list=dicService.findDictionaryDtoListByTypeId(pagination);
        ModelAndView modelAndView=getModelAndViewOfJson(list,pagination.getTotalCount());
        return modelAndView;
    }
}


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值