java - 加载登录表单时出错 - java spring

标签 java spring-mvc

当我访问基本网址时,它应该首先出现登录表单,但我收到此错误:

HTTP Status 500 - java.lang.IllegalStateException: No WebApplicationContext found: not in a DispatcherServlet request and no ContextLoaderListener registered?

所以,我尝试访问我的项目,例如: http://localhost:8080/project/

在 web.xml 中我有以下代码:

<welcome-file-list>
    <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
</welcome-file-list>

所以,这意味着它重定向到login.jsp。在该文件中 ai 有以下代码:

<form:form action="login/execute.html" id="signin-form_id" class="panel" method="post">
    <div class="alert alert-danger">
        Error here
    </div>
    <div class="form-group">
        <form:input path="username" class="form-control input-lg" placeholder="Username or email" />
    </div>
    <!-- / Username -->

    <div class="form-group signin-password">
        <form:input path="password" class="form-control input-lg" placeholder="Password" />
    </div>
    <!-- / Password -->

    <div class="form-actions">
        <input type="submit" value="Sign In"
            class="btn btn-primary btn-block btn-lg">
    </div>
    <!-- / .form-actions -->
</form:form>

错误出现在这里:

<form:form action="login/execute.html" id="signin-form_id" class="panel" method="post">

所以,我认为发生错误是因为我直接访问jsp,它应该首先通过 Controller ,然后 Controller 渲染jsp 我有这样的 Controller :

@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView showLogin(){

    return new ModelAndView("login","command",new UserAdmin());

}

但不工作...

web.xml:

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
</welcome-file-list>

spring-servlet:

<context:component-scan  base-package="com.fabbydesign.controller" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
    <property name="prefix" value="/WEB-INF/jsp/" />  
    <property name="suffix" value=".jsp" />  
</bean> 

最佳答案

原因及解决办法:

  • Welcome file to work,you need change the URL pattern <url-pattern>/</url-pattern>../ means any request that does not have a path info in it.
  • With the URL pattern(*.html) @RequestMapping(value = "/", method = RequestMethod.GET) this will not work. You need to change either mapping to value = "/.html" or URL pattern.

有关<url-pattern>的更多信息是 here .

关于java - 加载登录表单时出错 - java spring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40124171/

相关文章:

java - 这个日期和时间片段是如何工作的?

java - 验证一个字段是否存在且有效

java - 是否可以重载SpringBoot的ConstraintValidator isValid方法?

java - mvc :resources - Spring 的注解配置替换

java - 如何使用 AJAX 响应修改 Spring mvc 项目中的现有 url?

java - 将 Spring Security 与 SiteMinder 集成

java - 在 spring boot 中禁用自动日志记录配置

java - 使用 org.apache.commons.ObjectUtil 类对自定义对象进行空安全检查

spring - spring 3.2.3最佳配置

spring - 在某个包中的所有 Controller 方法上预先设置 RequestMapping 的路径