使用IDEA遇到的一个坑
本帖最后由 niebaohua 于 2019-11-6 20:10 编辑# 以下内容纯属猜测,小白勿轻信,具体原因不详,请大神试验一下。
## 使用IDEA的时候不要单独复制一个jsp文件(都不做任何改变)
最近在学SpringMVC的时候, 碰到了一个问题
在index.jsp中写了 4个超链接
```html
<ul align="center">
<li><a href="${pageContext.request.contextPath}/test/add">增加</a></li>
<li><a href="${pageContext.request.contextPath}/test/delete">删除</a></li>
<li><a href="${pageContext.request.contextPath}/test/modify">修改</a></li>
<li><a href="${pageContext.request.contextPath}/test/find">查询</a></li>
</ul>
```
在控制器中
```java
package cn.test.controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import javax.servlet.http.HttpSession;
public class BaseController {
@ModelAttribute
public void isLogin(HttpSession session, Model model) throws Exception {
if (session.getAttribute("user") == null){
throw new Exception("没有权限");
}
}
}
```
```java
package cn.test.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/test")
public class ModelAttributeController extends BaseController {
@RequestMapping("/add")
public String add(){
return "add";
}
@RequestMapping("/delete")
public String delete(){
return "delete";
}
@RequestMapping("/modify")
public String modify(){
return "modify";
}
@RequestMapping("/find")
public String find(){
return "find";
}
}
```
## 问题: 这个5个jsp文件, 全是空的, 没有任何输出的页面, 点击添加可以正常跳到add.jsp, 但是其他页面就跳转不了了 会报404错误
- 我把后面4个jsp页面分别添加内容, 可以正常跳转访问.
- 当我又把内容都删除之后, 恢复到原来5个空白jsp的页面, 竟然还可以正常访问.
- 然后, 我将网页删除, 重新复制add.jsp, 改完名之后, 页面还是只有add.jsp可以正常访问
- 下面我把页面删除, 留一个add.jsp, 我将手动创建delete.jsp, modify.jsp, 复制modify.jsp为find.jsp.
结果: `除了find.jsp界面能正常访问, 其他界面都不能访问`
应该就是jsp文件没编译
## 解决方法:
- 1. 删除已经编译的文件, 重启服务器. (直接重启服务器是没用的)
- 2. 重启编译器
- 3. 在复制的那些页面, 随便添加一些内容, (重启服务器)
emm....也许是你忘记重新编译啦?可以重新启动项目看看,或者使用热部署。 jsp需要重新编译的,换句话说,你应该重启一下 你在eclipse中也是这样啊,都需要关闭重开 jsp是servlet,需要编译的 本帖最后由 hilent 于 2019-11-6 13:52 编辑
不是我打击楼主,先别急着甩锅IDE,一知半解的,容易误导别人。
这个坑不是IDEA的,甚至可以说不是个坑。楼上说的很清楚了,jsp需要编译才能渲染,直接复制自然是不行的。。或许你该先查一下jsp的百科吧。 我也正好学习到SpringMVC这一部分!!!!1 hilent 发表于 2019-11-6 13:51
不是我打击楼主,先别急着甩锅IDE,一知半解的,容易误导别人。
这个坑不是IDEA的,甚至可以说不是个坑。 ...
你好,我运行web项目,它们肯定都是编译过的,希望你们可以去试一下,我也希望知道真正的原因 Love3295292 发表于 2019-11-6 12:54
emm....也许是你忘记重新编译啦?可以重新启动项目看看,或者使用热部署。
我每次修改之后都会重启服务器的,你们也别光看着,自己尝试尝试,毕竟我也不知道真正原因 不关idea的事哦,这个可能是电脑太卡没有及时编译哦。idea那个tomcat里运行时重启一下或者把以前编译的包文件删了重启就可以的
页:
[1]
2