如:PC端接口请求后跳转到jsp页面,手机端请求接口后跳转到html页面,两个客户端公用一个入口(index.do)。

// 跳转首页@RequestMapping(value = "/index.do", method = RequestMethod.GET)public String toIndex(HttpServletRequest req, HttpServletResponse res) {if (EquipmentJudgment.JudgeIsMoblie(req)) {// 来自移动端访问return "redirect:/wap";//重定向到另一个接口(手机端接口入口)} else {// 来自PC端访问return "/index";//跳转到index页面}}

1. spring-mvc.xml中修改视图解析器,如下:

<!-- 定义HTML文件的位置 --><bean id="htmlviewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass"value="com.abc.common.HtmlResourceView" /><property name="order" value="0" /><property name="prefix" value="/WEB-INF/view/" /><property name="suffix" value=".html" /><property name="contentType" value="text/html;charset=UTF-8"></property></bean><!-- 定义JSP文件的位置 --><bean id="jspViewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="order" value="1" /><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean>

说明:当接口返回页面时,首先会去找.html页面,找到了就执行完了,找不到就会自动去找.jsp页面。见HtmlResourceView.java 。

所有的页面名字不要重复!

2. 编写类EquipmentJudgment.java(判断是否是手机端)

package com.abc.common;import javax.servlet.http.HttpServletRequest;public class EquipmentJudgment {public static boolean JudgeIsMoblie(HttpServletRequest request) {boolean isMoblie = false;String[] mobileAgents = { "iphone", "android", "phone", "mobile", "wap", "netfront", "java", "opera mobi", "opera mini", "ucweb", "windows ce", "symbian", "series","webos", "sony", "blackberry", "dopod", "nokia", "samsung", "palmsource", "xda", "pieplus", "meizu", "midp", "cldc", "motorola", "foma", "docomo", "up.browser","up.link", "blazer", "helio", "hosin", "huawei", "novarra", "coolpad", "webos", "techfaith", "palmsource", "alcatel", "amoi", "ktouch", "nexian", "ericsson","philips", "sagem", "wellcom", "bunjalloo", "maui", "smartphone", "iemobile", "spice", "bird", "zte-", "longcos", "pantech", "gionee", "portalmmm", "jig browser","hiptop", "benq", "haier", "^lct", "320x320", "240x320", "176x220", "w3c ", "acs-", "alav", "alca", "amoi", "audi", "avan", "benq", "bird", "blac", "blaz", "brew","cell", "cldc", "cmd-", "dang", "doco", "eric", "hipt", "inno", "ipaq", "java", "jigs", "kddi", "keji", "leno", "lg-c", "lg-d", "lg-g", "lge-", "maui", "maxo","midp", "mits", "mmef", "mobi", "mot-", "moto", "mwbp", "nec-", "newt", "noki", "oper", "palm", "pana", "pant", "phil", "play", "port", "prox", "qwap", "sage","sams", "sany", "sch-", "sec-", "send", "seri", "sgh-", "shar", "sie-", "siem", "smal", "smar", "sony", "sph-", "symb", "t-mo", "teli", "tim-", "tosh", "tsm-","upg1", "upsi", "vk-v", "voda", "wap-", "wapa", "wapi", "wapp", "wapr", "webc", "winw", "winw", "xda", "xda-", "Googlebot-Mobile" };if (request.getHeader("User-Agent") != null) {for (String mobileAgent : mobileAgents) {if (request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgent) >= 0) {isMoblie = true;break;}}}return isMoblie;}
}

3. 编写类spring-mvc.xml 配置中的类HtmlResourceView.java(判断要跳转的页面是否存在)

package com.abc.common;import java.io.File;
import java.util.Locale;import org.springframework.web.servlet.view.InternalResourceView;public class HtmlResourceView extends InternalResourceView {@Overridepublic boolean checkResource(Locale locale) {File file = new File(this.getServletContext().getRealPath("/") + getUrl());return file.exists();// 判断该页面是否存在}
}

4. 木有啦...,自己赶紧去试试吧。。。

PC端和手机端入口一致,跳转不同格式页面的解决方案相关推荐

  1. php自动识别pc和手机端并跳转,JS如何实现网站中PC端和手机端自动识别并跳转对应的代码...

    1.  代码场景: 描述:在项目中,一般我们会使用响应式布局的方式或者借助bootstrap等插件来做响应式的网站.但是根据业务的需求,手机端可能会在功能上精简很多,我们也会写两套代码,分别用来实现P ...

  2. html自动跳转手机端,用JavaScript实现网站自动跳转电脑PC端与手机端不同页面

    前天,有一个网友希望在其微擎系统跳转的时候实现鉴别用户不同的客户端,比如电脑PC端和手机端,实现不同的页面跳转.对于之前老蒋有给其设置过PC端网站然后检测手机访问的时候跳转到WAP网站的案例,对于这个 ...

  3. html手机pc不同页面,PC端和手机端如何同时生成静态页

    静态页是和图片类似的静态资源,访问静态资源不会经过程序处理,不会根据浏览器返回不同页面.要同时支持PC端和手机端浏览器,且要生成静态页时,最好使用bootstrap之类的技术,实现自适应页面设计. 如 ...

  4. 【工具】PC端调试手机端 Html 页面的工具

    一.概述 有一个项目需要在手机端显示一个 web 页面,而每次把应用 launch 后,从手机端看比较麻烦,因此搜罗了几种在 PC 端调试手机端页面的工具. 二.工具 http://fonkie.it ...

  5. [html] 制作一个页面时,需要兼容PC端和手机端,你是要分别做两个页面还是只做一个页面自适应?为什么?说说你的理由

    [html] 制作一个页面时,需要兼容PC端和手机端,你是要分别做两个页面还是只做一个页面自适应?为什么?说说你的理由 两个页面 pc端布局和交互行为跟移动端不一样, 两个页面反而更好维护 个人简介 ...

  6. JavaScript 代码判断:PC端和手机端

    js代码· 示下: <script> if ((navigator.userAgent.match(/(phone|pad|pod|iPad|iPod|iPhone|ios|Android ...

  7. 前端pc端、手机端适配基本知识

    前端pc端.手机端适配问题 一个项目如何做到手机.电脑共用的方式 1.第一种方式:响应式布局(栅格布局),即通过媒体查询控制css样式,从而实现一套代码手机.电脑共享.一般而言,手机.电脑共享样式,其 ...

  8. python如何判断web访问来源是PC端还是手机端

    以下方法为判断web访问来源是PC端还是手机端 def judge_pc_or_mobile(ua):"""判断访问来源是pc端还是手机端:param ua: 访问来源头 ...

  9. 判断访问来源是pc端还是手机端

    判断访问来源是pc端还是手机端(python) def judge_pc_or_mobile(ua):"""判断访问来源是pc端还是手机端:param ua: 访问来源头 ...

最新文章

  1. Android 如何使用GPU硬件加速
  2. Linux自定义命令
  3. Dalvik指令备忘
  4. input发送a.jax_Java EE 7 / JAX-RS 2.0 – REST上的CORS
  5. 【Flink】Unauthorized request to start container. This token is expired. current time is
  6. Python机器学习 使用sklearn构建决策树复习
  7. quartus仿真15:全加器和半加器及如何生成符号文件
  8. 大数据挖掘有哪些技术
  9. ubuntu/Windows双系统,在ubuntu隐藏window分区的方法
  10. Python处理QXDM抓取log
  11. Android网络编程之——文件断点下载(暂停/继续/重新下载)
  12. 高质量论文配图配色(附RGB值及16进制码)
  13. c语言考研真题及答案pdf,中财信息学院C语言程序设计2002年考研真题及答案.pdf...
  14. word中无法取消图片组合
  15. CentOS 安装字体
  16. 【Unity】3D雷霆战机
  17. Mac 安装Mactex教程
  18. SIwave仿真手册——软件基础(一)
  19. python将图片转换成动漫,python实现图片转换成素描和漫画格式
  20. Scaling Instruction-Finetuned Language Models翻译

热门文章

  1. Oracle Database 11g : ocp之SQL 基础
  2. C语言实现一个根据学生成绩设置其等级,并完成统计不及格人数的函数
  3. C++的学习心得和知识总结 第十三章(完)
  4. MultipartFile与File的一些事
  5. hugeng007_demo03_
  6. 对于HIPAA合规来说,安全差距分析重要吗?
  7. 迈入数智时代的恒生电子:四大新品推动金融数智化从量变走向质变
  8. 人口金字塔:中国人口真的负增长了吗?
  9. java 使用 pdfbox 转图片 中文乱码,或者空白页面解决方案
  10. 计算机控制技术及应用pdf版,计算机电子控制技术及应用.pdf