jsp和java工作中经验总结<一>

来源:互联网 发布:房卡麻将源码搭建教程 编辑:程序博客网 时间:2024/05/15 23:48

  • 1 sping mvc的ModelAndView直接跳转到指定url不经过转换器转换
  • 2 js代码里取里定义的变量方法
  • 3 在jsp里标签里读取用modelAndView传递的数据
  • 4Vuejs 动态绑定class
  • 5RequestBody使用要点
  • 6SpringMVC 之conversionSerivce

1、 sping mvc的ModelAndView直接跳转到指定url,不经过转换器转换。

正常我们使用ModelAndView是这样的:

mView.setViewName(url);

这个url是相对路径,它的路径是根据springmvc配置文件dispatcher-servlet.xml来配置来决定的:

<bean id="jspViewResolver"        class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/page/" />        <property name="suffix" value=".jsp" />        <property name="order" value="0"></property>    </bean>

现在我们想直接跳转到指定url,不经过路径映射转换,如下

String url = "www.baidu.com";ModelAndView mView = new ModelAndView(new RedirectView(url));

2、 js代码里取<%%>里定义的变量方法

比如jsp里

<%String name = "cy";或者String name = (String)request.getSession().getAttribute("name");%>

在js里取name值方法如下:

"<%=name%>"

3、 在jsp里<%%>标签里读取用modelAndView传递的数据

首先,传递数据必需写在ModelMap里,比如有个modelAndView对象名是mView,则

mView.getModelMap().addAttribute("openId", openId);

jsp里用java取数据方式如下:

<%String openId = (String)request.getAttribute("openId");%>

如果用js取传递的数据,则数据添加如下:

mView.addObject("openId", openId)

jsp的js取数据方式如下:

${openId}

4、Vue.js 动态绑定class

v-bind结合三目运算符

<a rel="#a" :class="index==0?'f-active':''">{{item.nmCn}}</a>

5、@RequestBody使用要点

1.若是ajax请求,必需指定数据类型是:“application/json”
2.数据数据是json类型的字符串,字符是字符串
3.必需是POST请求
4.在接收的方法里使用@RequestBody标识类,如下:

@RequestMapping(value = "/test", method = RequestMethod.POST)@ResponseBodypublic Object updateAddrInfo(@RequestBody TestRo testRo) {}

6、SpringMVC 之conversionSerivce

ConversionSerivce的作用是把http的请求参数以什么形式进行类型转换,即传递的参数转换成我们想要的参数,当然这是一种额外的使用方法,平时可能不常使用。
比如delphi语言不直接日期里的空格,中间可能会加上“T”来代替空格,但java是不能识别的,故需要我们在传递参数时就把它转换成我们想要的格式。
定义一个TimestampConverter.java:

package yui.ui.web.convert;import java.sql.Timestamp;import java.util.Date;import org.apache.commons.lang3.StringUtils;import org.springframework.core.convert.converter.Converter;import yui.comn.util.DateUtils;public class TimestampConverter implements Converter<String, Timestamp> {    @Override    public Timestamp convert(String timeStr) {        Timestamp t = null;        timeStr = timeStr.replace("T", " ");        if (StringUtils.isNotBlank(timeStr)) {            try {                t = DateUtils.covertStrToTimestamp(timeStr, "yyyy-MM-dd HH:mm:ss");            } catch (Exception e) {                t = new Timestamp(new Date().getTime());                e.printStackTrace();            }        }        return t;    }}

dispatcherServlet.xml里配置如下:

<mvc:annotation-driven conversion-service="conversionService">        <!--     解决返回String时乱码-->          <mvc:message-converters register-defaults="true">              <bean class="org.springframework.http.converter.StringHttpMessageConverter">                   <property name="supportedMediaTypes">                        <list>                            <value>text/plain;charset=UTF-8</value>                            <value>text/html;charset=UTF-8</value>                        </list>                    </property>                </bean>            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">                  <property name="objectMapper">                      <bean class="com.fasterxml.jackson.databind.ObjectMapper">                          <property name="dateFormat">                              <bean class="java.text.SimpleDateFormat">                                <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />                              </bean>                          </property>                      </bean>                  </property>             </bean>            </mvc:message-converters>      </mvc:annotation-driven>     <bean id="conversionService"           class="org.springframework.context.support.ConversionServiceFactoryBean">       <property name="converters">           <list>               <bean class="yui.ui.web.convert.TimestampConverter"></bean>           </list>       </property>    </bean>
原创粉丝点击