Spring mvc 跳转后路径问题,求解,

lk_Session 2014-01-20 06:10:44
Spring mvc跳转后路径找不到了
1、控制层

package com.scms.admin.web;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.scms.dao.service.ILoginService;
import com.scms.model.Admin;
@Controller
@RequestMapping("/login")
public class LoginController {
@Resource
public ILoginService loginService;

// 登陆功能
@RequestMapping(value = "/loginS", method = RequestMethod.POST)
public String loginS(Model model, HttpSession session, String username,
String password, String yzm) {
String kaptchaExpected = (String) session
.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
Admin admin = loginService.LoginS(username, password);
if (admin==null) {
model.addAttribute("MessError", "用户名与密码不正确!");
return "Admin/login";
} else if (!(kaptchaExpected.equals(yzm)) && kaptchaExpected != yzm) {
model.addAttribute("MessError", "验证码不正确!");
return "Admin/login";
} else {
return "Admin/main";
}
}

}


2、servlet.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">
<!-- 静态文件 -->
<mvc:resources location="/static/" mapping="/static/**" />
<mvc:annotation-driven />
<!--注解说明 -->
<context:annotation-config />
<!-- 把标记了@Controller注解的类转换为bean -->
<context:component-scan base-package="com.scms.admin.web" />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!--在这里配置后缀名jsp和视图解析器。。 -->
<bean id="viewResolverCommon"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
<property name="ViewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
<property name="order" value="1"></property>
</bean>
<!-- FreeMarker视图解析 。在这里配置后缀名ftl和视图解析器。。 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="cache" value="true"/>
<property name="suffix" value=".ftl" />
<property name="order" value="0"/>
</bean>
<!-- 配置FreeMarker模板路径 -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath">
<value>/WEB-INF/view/</value>
</property>
<property name="freemarkerVariables">
<map>
<entry key="xml_escape" value-ref="fmXmlEscape" />
</map>
</property>
<property name="defaultEncoding">
<value>utf-8</value>
</property>
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">3600</prop>
</props>
</property>
</bean>
<bean id="fmXmlEscape" class="freemarker.template.utility.XmlEscape"/>
</beans>

3、
看我的文件在WEB-INF下
4、接下来看我的路径
<IFRAME style="OVERFLOW: visible" id="main" name="main" src="default.jsp" frameBorder=0 width="100%" scrolling="yes" height="100%"></IFRAME>

default.jsp找不到了,
登陆后的路径是http://localhost:8080/XXXX/login/loginS
结果我的顾名思义我的default.jsp的路径就成HTTP Status 404 - /XXXX/login/default.jsp这样子了。
我的defalut.jsp在WEB-INF下。绝对路径访问不好吧?
...全文
875 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
juicy7005 2014-01-27
  • 打赏
  • 举报
回复
引用 6 楼 yl0706401049 的回复:
你还要写个Controller,通过该Controller单独跳转你的jsp。如 @RequestMapping("/default") public String default() { return "Admin/default"; } 而且在WEB-INF下面的文件是安全的,是不能直接访问的
正解
wanding_ 2014-01-24
  • 打赏
  • 举报
回复
你还要写个Controller,通过该Controller单独跳转你的jsp。如 @RequestMapping("/default") public String default() { return "Admin/default"; } 而且在WEB-INF下面的文件是安全的,是不能直接访问的
lk_Session 2014-01-23
  • 打赏
  • 举报
回复
lk_Session 2014-01-23
  • 打赏
  • 举报
回复
lk_Session 2014-01-21
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
return "Admin/login";你这样写,他会找login.jsp 这样写src="default.jsp",他是相对于iframe的父页面,是相对于当然目录下的,所以会到/XXXX/login下找这个页面的。
知道啊,我想知道解决办法。
  • 打赏
  • 举报
回复
return "Admin/login";你这样写,他会找login.jsp 这样写src="default.jsp",他是相对于iframe的父页面,是相对于当然目录下的,所以会到/XXXX/login下找这个页面的。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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