springmvc部署欢迎页

如果把所有页面都放在web-inf下面,怎么配置欢迎页?我在web.xml文件中设置web-inf/index.jsp。这样访问不到。
还有就是,如果把index.jsp放到webroot下面,比如登录注册,登录时index页面,注册register.jsp,如果在register页面提交完表单经过处理后返回index页面怎么做?因为我的页面比较多,我在web-inf下面已经分文件了。在mvc-servlet.xml中已经配置了
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"

       p:prefix="/WEB-INF/msg/"  p:suffix=".jsp" />

这种怎么解决?

3个回答

[code="java"]
@RequestMapping(value={" ","/"})

public String index(){

return "welcome";

}

[/code]

leehuat
leehuat 你可以在msg下面在分目录的 msg/welcome/index.jsp 然后返回的时候可以是这样的 return "welcome/index";
6 年多之前 回复
zhuxiaojaun
猪呢 这个我知道,我之前是这么做的额,就是觉得所有页面全部放到一个文件夹下面看着太乱了
6 年多之前 回复
leehuat
leehuat 这样是取不到的 你看你的配置文件 p:prefix="/WEB-INF/msg/" 所以的jsp文件都应该在msg下面的
6 年多之前 回复
zhuxiaojaun
猪呢 msg下面没有这个index.jsp.index.jsp是直接放在web-inf下面的
6 年多之前 回复
leehuat
leehuat 这个/WEB-INF/msg/index.jsp文件存在吧?
6 年多之前 回复
zhuxiaojaun
猪呢 @Controller @RequestMapping("/user") public class UserController{ @RequestMapping(value={"","/"}) public String index(){ return "index"; } 我是这么访问的:http://localhost8080/msgSpringmvc/user/ 可是访问不到,这个页面是放在web-inf下面的
6 年多之前 回复
leehuat
leehuat 你可以去掉web.xml里面的东西的 但是你要在controller里面配置方法跳转到 web-info下面的一个jsp页面的 注意下路径就可以了
6 年多之前 回复
zhuxiaojaun
猪呢 在web.xml中还要配置吗?我把web.xml中的默认欢迎页拿掉了,按照你上面说的页面打不开,是404
6 年多之前 回复
leehuat
leehuat http://localhost8080/test/ 因为你在action里面配置了 @RequestMapping(value={" ","/"}) public String index(){ return "welcome"; } 你也可以在其他的action直接跳转到页面的 return "redirect:/";
6 年多之前 回复
zhuxiaojaun
猪呢 哦 明白了 那如果放在web-inf下面我在地址栏怎么输入,就可以打开这个 欢迎页了?
6 年多之前 回复
leehuat
leehuat 这样springmvc是不支持的。 这就是他的规则的。 为了保护jsp的安全,所以放置在了web-inf下面了
6 年多之前 回复
zhuxiaojaun
猪呢 那我想把这个欢迎页放在webroot下面,怎么让他执行完其他操作再次返回这个欢迎页?
6 年多之前 回复
leehuat
leehuat 这样spring mvc会找不到文件的, 因为你配置了 p:prefix="/WEB-INF/msg/"
6 年多之前 回复
zhuxiaojaun
猪呢 如果我放在webroot下面,执行了其他操作后再次返回这个欢迎页在controller中怎么写呢?
6 年多之前 回复
leehuat
leehuat 恩是的 如果不在web-inf下的 可以直接配置在web.xml里面的
6 年多之前 回复
zhuxiaojaun
猪呢 那这个欢迎页是写在web-inf下面的吗?
6 年多之前 回复
leehuat
leehuat 比如说你的项目是test 那么地址可以是http://localhost8080/test 或者是 http://localhost8080/test/
6 年多之前 回复
zhuxiaojaun
猪呢 这个是要先从控制器调到控制页的吧。@RequestMapping(value={" ","/"})这个/是代表什么?
6 年多之前 回复

放在web-inf下面的文件不能直接访问,你只能通过定义action路径来访问
你直接定义一个关于index
比如

/web-inf/文件夹/index.jsp

u010796208
黄菲 你在webroot下面放在一个index.jsp,让项目默认进入到index.jsp页面,然后在index.jsp页面里面写一个跳转,跳到 能转到web-inf/文件夹/index.jsp就可以了
6 年多之前 回复
zhuxiaojaun
猪呢 那在浏览器的地址栏怎么写?我想只输入项目名称就可以打开这个欢迎页
6 年多之前 回复
u010796208
黄菲 是的啊,因为在web.xml下面无法跳到web-inf下面的文件
6 年多之前 回复
zhuxiaojaun
猪呢 那还是要先从控制器调到这个控制页的
6 年多之前 回复
u010796208
黄菲 不好意思,看错了,那是ssh框架的,springmvc的话 <bean id="index" class=""> <property name="prefix" value="/WEB-INF/文件名/" /> <property name="suffix" value=".jsp" /> </bean> @Controller @RequestMapping("index") public class IndexController { @RequestMapping("index") public String index() { //跳转到index页面 return "index"; } }
6 年多之前 回复
zhuxiaojaun
猪呢 没太懂!这个配置是放在web.xml中的吗?直接配置不需要经过controller吗?
6 年多之前 回复

WEB的规范中,把WEB-INF目录设置成了私有目录(也就是安全目录),客户端是访问不了这个目录的。
欢迎页(也就是首页),在spingmvc的配置文件中使用如下的配置:
其余的可以参考我的博文:http://xunleifast.iteye.com/admin/blogs/2070060

iteye_13484
iteye_13484 项目的根路径,比如百度http://www.baidu.com那么path就是http://www.baidu.com/这样配置的话,地址栏输入项目的根路径,会根据view-name的配置,加上前缀和后缀,找到指定的页面。比如我这个例子,最后找到的页面是:http://localhost8080/projectName/views/index.html
6 年多之前 回复
zhuxiaojaun
猪呢 这个path路径是从哪里开始算的?
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐