ssm jsp取不到controller类返回的对象的解决方案

问题描述:

我昨晚敲到这里的时候 发现我的jsp里怎么度没有controller返回的对象

这是我的页面表格

但是我的controller里是可以取到jackson对象的 也打印出来了

我的UserController.java代码

@Controller
@RequestMapping("/user")
public class UserController {

    //注入service对象
    @Resource
    private UserService userService;

    @RequestMapping("/findAll")
    public String findAll(Model model){
        System.out.println("执行了");
        List<User> users = userService.findAll();
        model.addAttribute("users",users);
        //return "redirect:/list.jsp";
        return "index";
    }
}

我的index.jsp页面内下的table代码

<c:forEach items="${users}" var="user" varStatus="s">
    <tr>
        <td>${s.count}</td>
        <td>${user.username}</td>
        <td>${user.password}</td>
        <td>${user.sex}</td>
        <td>${user.telephone}</td>
        <td>${user.address}</td>
    </tr>
</c:forEach>

我的web.xml下的servlet-mapping

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

我的springmvc.xml下的视图解析器的代码

<!--配置视图解析器:简化在controller类编写的视图路径-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--访问的前缀-->
        <property name="prefix" value="/WEB-INF/pages/"/>
        <!--访问的后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

我的目录结构

问题分析:

问题就在后面两个xml和这个目录结构中 controller和jsp的代码完全没问题

首先要知道在webapp下,但是在WEB-INF目录外的页面,我们才能直接访问

而WEB-INF目录下的jsp,是需要通过一些技术实现,我这里是controller类,通过这些类内部跳转才能访问

从我的目录结构可以看到

我的index.jsp这个页面是在WEB-INF文件夹外面的,也就是可以直接通过localhost:8080/index.jsp访问

但是我的controller只能访问springmvc.xml下的视图解析器给的路径,也就是/WEB-INF/pages /index.jsp才能访问到

换句话来说,我的controller类,最后return "index;根本return不过去

这也就是我取不到controller类返回对象的原因

测试过程:

我是在这两个地方分别创建了一样的list.jsp测试出来的

我的测试代码:

<html>
<head>
    <title>Title</title>
</head>
<body>
    查询账户1
    <c:forEach items="${users}" var="user" varStatus="s">
        ${s.count}
        ${user.username}
        ${user.password}
        ${user.sex}
        ${user.telephone}
        ${user.address}
    </c:forEach>
</body>
</html>

解决方案:

首先我要说明我的解决方法在我这种情况下是解决了的,但是你得保证你的controller可以取得到jackson对象的情况下

代码无误的同志们,你们可以先检查一下你们的配置

我把我的Index.jsp放在了WEB-INF/pages/下

这样我的controller就可以用视图解析器解析到我的Index页面

但是与之而来的,就是现在不能通过localhost:8080/index.jsp直接访问了

我想这个页面由于是我的后台页面,应该可以通过登录页面跳转过去

暂时还没做到那一步,就暂时这样吧

我通过http://localhost:8080/user/findAll,访问到了我的controller类中的findAll方法

后来,这个findAll方法将我的mv对象,通过springmvc.xml配置的视图解析器方法,

返回到了我在/WEB-INF/pages/index.jsp

最后我的数据就成功封装进去了

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值