关于SSM框架访问页面的一些思考

SSM框架搭建完成之后可以访问的页面也只有一个index.jsp.如果此时写好了其他的页面像访问的话那是不允许的.那怎么办呢?
其实仔细查看web.xml可以发现可以访问index.jsp也是因为在web.xml里面配置了相关信息

<!-- 欢迎页面-->
<welcome-file-list>
  <welcome-file>/WEB-INF/abc.jsp</welcome-file>
</welcome-file-list>

这时候把index,jsp换成啥都行,不过index.jsp就无法访问了

但是还是没有解决访问其他页面的方法.后来查资料发现,SSM框架是不允许直接访问项目中的网页文件的.也称之为视图.像访问的话得通过controller进行.类似下面的代码

package com.MySSM.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/MySSM/controller")
public class HiController {
    /**
     * 测试返回指定的view文件名
     * @return
     */
    @RequestMapping("/welcome")
    public String helloWorld() {
        return "abcq";
    }
    /**
     * 测试返回带有数据的ModelAndView对象
     * @return
     */
    @RequestMapping("/view")
    public ModelAndView getView() {
        String message = "<br><div style='text-align:center;'>"
                + "<h3>我叫胖达,来自HiController.java(公众号:Java知识共享)</h3>";
        return new ModelAndView("abcq", "message", message);
    }
}

解释:
@Controller用于标记在一个类上,使用它标记的类就是一个SpringMvc Controller对象,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。
@Controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是处理请求的处理器。

上面的解释很清楚了,这里由于我设置了@RequestMapping("/MySSM/controller"),所以访问的时候需要输入:http://localhost:8080/war/MySSM/controller 不过一般不这么输入,因为没数据.当给方法头上加上 @RequestMapping("/welcome")这个信息之后,访问http://localhost:8080/war/MySSM/controller/welcome将可以打开这个函数返回值所命名的网页.如果没有这个网页那么将导致404错误.这里需要注意返回值并不是一个字符串.以下:
返回字符串(官方推荐此种方式) --返回视图路径,数据通过形参 Model model 或者 ModelMap model
参考:https://blog.csdn.net/qq_41357573/article/details/84454502
参考:https://www.cnblogs.com/zhaojiankai/p/8184207.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值