SpringMVC的Controller跳转问题

JAdroid 2018-04-15 09:14:09
今天在写SSM框架搭建的项目时遇到的问题,请各位大佬不吝赐教,

首先,这是我的第一个Controller类:


package com.cms.controller;

/**
* 页面展示controller
*/

@Controller
public class PageController {

@RequestMapping("/")
public String showIndex() {
return "/admin/index";
}

@RequestMapping("/{page}")
public String showPage(@PathVariable String page) {
return "/admin/"+page;
}

}

然后,这是我的第二个Controller类:(只显示一部分,其他方法跟这个没多大联系)
@Controller
public class CommunityController {
@RequestMapping("/cummunity/edit/{comId}")
@ResponseBody
public String editCommunity(@PathVariable Long comId, Model model) throws Exception {
CmCommunity community = communityService.getCommunityByComId(comId);
model.addAttribute("community",community);
return "communityedit";
}
}

再次,这是我未完成的项目结构视图:



还有springMVC.xml中视图解析器我是这样配置的:


下面是我的jsp页面a标签中的设置:
<a href="/cummunity/edit/85452135" /> (后面的数字是用来进行查询的某个id号)
最后的运行结果是这样子的:

请问各位该如何改?
...全文
1233 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
JAdroid 2018-04-22
  • 打赏
  • 举报
回复
恩恩,多谢大家解答,给了我很多方法,已经根据@weixin_39309867 改了,没有错误了,能正常跳转了,不过我稍微这样改了下

再次多谢大家。
热爱生活~~~ 2018-04-17
  • 打赏
  • 举报
回复
@RequestMapping("/cummunity/edit/{comId}") 这个可以改成 @RequestMapping("/cummunity/edit/*")这样试试 然后你访问的时候可以在 * 这里放你的id,controller层可以用slipe获取id。

String url = request.getRequestURI();
String[] URI = uri.split("/");
Integer pageindex = Integer.valueOf(URI[2(这里根据URL里你的id在第几个来填)].replace(".html", ""));
JAdroid 2018-04-17
  • 打赏
  • 举报
回复
@weixin_39309867 ,谢谢回答,刚刚发错了,好像不能撤回。。。。,,按照你说的改了之后,可以进去,但是取不到数据,还有css和js的路径没有从视图解析器中解析出来
JAdroid 2018-04-17
  • 打赏
  • 举报
回复
@masteryourself, 谢谢提醒,但是我注释掉@ResponseBody后,return "admin/communityedit"还是一样没有用,
JAdroid 2018-04-17
  • 打赏
  • 举报
回复
@wxb_hz, 抱歉,昨天改着改着忘记看了,我是想改成能从页面中得到我想要的id号,然后查询数据库获得数据,获取数据后跳转到communityedit.jsp这个页面显示我刚刚获取到的数据。
诺丽果 2018-04-17
  • 打赏
  • 举报
回复
不知道为啥颜色显示不出来,把上面的<span style="color: #FF0000;">这句话删掉啊
诺丽果 2018-04-17
  • 打赏
  • 举报
回复
引用 8 楼 JAdroid 的回复:
@weixin_39309867 ,谢谢回答,刚刚发错了,好像不能撤回。。。。,,按照你说的改了之后,可以进去,但是取不到数据,还有css和js的路径没有从视图解析器中解析出来
你有没有发现你的<a href="/cummunity/edit/85452135" /> (后面的数字是用来进行查询的某个id号)里面的id和你请求的url显示的id号不对?你应该是这样的<a href="/cummunity/edit?comId=85452135" />然后把你的第二个controller改成
@Controller
public class CommunityController {
@RequestMapping("/cummunity/edit")
public String editCommunity(@PathVariable Long comId, Model model,String comId) throws Exception {
    CmCommunity community = communityService.getCommunityByComId(comId);
model.addAttribute("community",community);
    return "/admin/communityedit";
}
}
卡布奇诺er 2018-04-16
  • 打赏
  • 举报
回复
@ResponseBody这个注释是把返回结果转换为数据流直接返回到页面 https://www.cnblogs.com/qiankun-site/p/5774325.html
诺丽果 2018-04-16
  • 打赏
  • 举报
回复
问题出在第二个controller中,1,把@ResponseBody去掉;2, return "communityedit";改成 return "/admin/communityedit";
toitorse2 2018-04-16
  • 打赏
  • 举报
回复
你想表达什么意思?
masteryourself 2018-04-16
  • 打赏
  • 举报
回复
你应该想直接返回页面吧,把@Responsebody注解去掉就好了,不然spring把你当成字符串解析了
热爱生活~~~ 2018-04-16
  • 打赏
  • 举报
回复
兄弟,要改成什么?要说出来

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧