- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写这个程序,我正在尝试在用户登录后显示辅助页面。我的第一个屏幕由 LoginInterfaceController 处理,如下所示。
@Controller
public class LoginInterfaceController{
protected final Log logger = LogFactory.getLog(getClass());
@RequestMapping
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ModelMap model = new ModelMap();
logger.info("Returning Login View");
model.addAttribute(getLoginAttempt());
return new ModelAndView("LoginView.jsp", model);
}
@ModelAttribute("LoginAttempt")
public LoginAttempt getLoginAttempt() {
return new LoginAttempt();
}
@RequestMapping(method=RequestMethod.POST)
public String validateLogin(@ModelAttribute("LoginAttempt") @Valid LoginAttempt loginDetails,
BindingResult bindingResult, Model model,
@RequestParam(value="username", required=true) String username,
@RequestParam (value="password", required=true) String password)
{
String returnString;
LoginAttempt checkLogin = new LoginAttempt(username, password);
if(bindingResult.hasErrors())
{
returnString = "LoginView.jsp";
}
else if((!checkLogin.getUsername().equalsIgnoreCase("james") || !checkLogin.getPassword().equals("asdf123")))
{
returnString = "FailedLogin.jsp";
}
else
{
returnString = "redirect:" + "/ReferrerHome/";
}
return returnString;
}
用户经过验证后,应将其重定向到/ReferrerHome/页面。
我的 LeadInterfaceController 的请求映射设置如下
@Controller
public class LeadInterfaceController {
private LeadServiceClass leadService = new LeadServiceClass();
protected final Log4JLogger logger = new Log4JLogger();
@RequestMapping(value="/ReferrerHome/")
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ModelMap model = new ModelMap();
logger.info("Returning Referrer Home View");
model.addAttribute(getLead());
model.addAttribute(getBrokerList());
return new ModelAndView("home.jsp", model);
}
@ModelAttribute("Lead")
private Lead getLead() {
return leadService.getNewLead();
}
@ModelAttribute("Broker")
private ArrayList<Broker> getBrokerList(/*Referrer referrer*/)
{
return /*(ArrayList<Broker>)referrer.getBrokers() */ new ArrayList<Broker>();
}
@RequestMapping(value="ReferrerHome/home.jsp", method=RequestMethod.POST)
public String validateLogin(@ModelAttribute("Lead") @Valid Lead leadInput, BindingResult bindingResult, Model model)
{
String returnString;
if(leadInput.getLeadHomePhoneNumber() == null &&
leadInput.getLeadWorkPhoneNumber() == null &&
leadInput.getLeadMobilePhoneNumber() == null &&
leadInput.getLeadEmail() == null){
logger.info("HPhoneNum: " + leadInput.getLeadHomePhoneNumber());
//code here to set an error state indicating that some contact information is required
}
if(bindingResult.hasErrors())
{
returnString = "ReferrerHome/home.jsp";
}
else
{
leadService.getLeadDao().addLead(leadInput);
returnString = "ReferrerHome/success.jsp";
}
return returnString;
}
但是,当用户通过身份验证时,URL 会切换到/ReferrerHome/,但会重新加载 LoginView.jsp,而不是加载 home.jsp。令人气愤的是,这两天前还在工作,我想不出我做了什么导致它坏了。
这里有我的 LTSServlet.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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<mvc:resources mapping="/resources/**" location="/resources/" />
<mvc:annotation-driven />
<tx:annotation-driven/>
<jdbc:embedded-database id="LTSDatabase" type="HSQL" />
<context:component-scan base-package="com.au.curtin" />
<import resource="*/WEB-INF/classes/com/au/curtin/leadtrackingsystem.xml" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="LTSDatabase" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<bean id="PersistenceAnnotationPostProcessor"
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean id="hibernateExceptionTranslator"
class="org.springframework.orm.hibernate4.HibernateExceptionTranslator" />
<bean
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"
id="PersistenceExceptionTranslator" depends-on="hibernateExceptionTranslator" />
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value="" />
</bean>
这里是我的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>LTSServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>LTSServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>LoginView.htm</welcome-file>
</welcome-file-list>
</web-app>
我正在绞尽脑汁地试图让它发挥作用。
希望能帮到你。
最佳答案
您没有映射到 validateLogin
中的路径(仅请求类型)。这样,当您返回“home.jsp”时,它会映射到 validateLogin
而不是 @RequestMapping(value="ReferrerHome/home.jsp", method=RequestMethod.POST)
.
尝试:1. 在LeadInterfaceController.handleRequest
中返回ReferrerHome/home.jsp
,而不是home.jsp
。2. 更改 validateLogin
上的映射,使其包含绑定(bind)到的路径(然后在重定向后您可能会出现错误的描述性错误)。
这应该有帮助。
您还可以在 DispatcherServlet 上使用调试器并遵循流程(如何选择“login.jsp”页面)。
关于java - Spring中的@RequestMapping无法让辅助 Controller 接管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16413222/
我正在尝试 specFlow 辅助,但不确定如何从表中创建类属性。 想象一下我有这门课: public class Tracking { public string Category { ge
我如何使用带 IOS 应用程序的辅助 GPS 来计算给定区域(例如建筑物)内部(或外部)某人的位置? 是否有可能在几英尺内就足够准确? 这样做正确吗? 是否可以在计算中使用多个 wifi 连接? 最佳
我在 wiki 和其他一些文本中看到,他们说冒泡排序、插入排序、选择排序等的空间复杂度是 O(1) 辅助。它们是否指的是程序中使用的变量所需的常量存储单元。 最佳答案 是的,他们指的是大多数排序都是就
默认情况下,页面上有 3 个点击事件(蓝色 X、蓝色 +、灰色 X)。每个人都会打开一个模式框。 每个模式框都有一个按钮。其中两个模态框,一个用于蓝色 X,一个用于蓝色 +,内部都有功能按钮。当我单击
我正在寻找 Kotlin 的 gigasecond 练习的解决方案:http://exercism.io/exercises/kotlin/gigasecond/readme 。我可以理解它如何需要两
我基本上刚刚开始使用 PyGame 进行开发,但我在整个 Sprite 概念方面遇到了麻烦。我一直在到处寻找有关如何使用它的指南,但似乎找不到任何指南。我想知道这一切是如何运作的基本概念。这是我一直在
我有一些无法运行的 JavaScript 代码。我尝试过移动一些东西,并更改一些关键字,但到目前为止没有任何效果。我会让你们尝试一下。 这是 JavaScript 文件: var GAME =
我有这个注册网页是我在帮助下创建的,感谢这里的人。在尝试使其响应之前,我只是做了一些调整。如何在复选框及其文本和底部的 div 之间创建空间而没有间隙。有什么建议吗? https://jsfiddle
我正在尝试检查是否启用了 WiFi 辅助。当我连接到我的接入点以获取一些数据时,我遇到了问题,当我的连接不佳时,我的蜂窝数据被使用并且它干扰了我的接入点。有什么方法可以检查是否启用了此选项? 最佳答案
为了安全起见,我希望使用异地复制/辅助 Blob 存储容器作为 AzureML 数据存储的数据源。所以我执行以下操作: 新数据存储 输入名称 + Azure Blob 存储 + 手动输入 对于 URL
我的讲师现在有一个我以前从未见过的奇怪习惯,我想知道这是 Haskell 标准还是他的编程风格的怪癖。 基本上,他经常会做这样的事情: functionEx :: String -> Int func
我想从可移动SD卡中删除文件,我尝试了很多方法但没有效果。 尝试过: file.delete(); 和 File file = new File(selectedFilePath); boolean
我正在开发一款 Android 应用,用户必须能够在其中进行身份验证,然后调用 YouTube 数据 API。 我可以毫无问题地使用主帐户对用户进行身份验证,使用 Google 登录对我和用户来说一切
命令: sudo mv /temp/hello.txt /path/to/destination/ 然后我通过 key 存储添加了密码。 我确信写在 sudo.password 中的密码是正确的。
我需要编写一个 java 代码来获取给定集群的辅助名称节点的 IP 地址。给定集群的 Namenode 的 IP 地址。 我能够获取数据节点和名称节点的报告,但无法找到获取辅助名称节点的 IP 地址的
Cay Horstmann 的书《不耐烦的 Scala》中的一个非常简单的练习一直让我感到困惑。是关于primary , auxiliary和 default primary构造函数: ex 5.10
我正在尝试确定 Google Cloud DNS 是否支持通过 NOTIFY 请求进行辅助 DNS (AXFR/IXFR) 传输?我在网上找不到任何东西,Google 也没有明确声明不支持它。 最佳答
我有一个简单的 Kotlin 类: data class ValveSpan(val begin:Duration, val end:Duration, val key:String):Compara
我有一个与最初在 UISplitView 中加载辅助 View 相关的快速问题。目前,我已经在 masterVC.swift 中获得了代码,可以用数组中的第一个对象(如果有)填充detailsVC。这
我正在使用这个命令来获取另一个命令的进程 ID: ps aux | grep 7000.conf | awk '{print $2}' 这将返回两个 PID: 7731 22125 我只想要第一个。第
我是一名优秀的程序员,十分优秀!