在 My Spring mvc login.jsp 中的代码片段是:
<form:form method="post" action="authenticate" modelAttribute="userInfo">
<div class="form-group">
<label for="exampleInputEmail1">User Name</label>
<i class="fa fa-user"></i>
<form:input path="loginID" id="username" placeholder="" />
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<i class="fa fa-lock"></i>
<form:password class="form-control" path="password" id="password" placeholder=""/>
</div>
<div>
<button type="submit" class="btn btn-danger">Login</button>
</div>
</form:form>
这给了我
org.apache.jasper.JasperException: Unable to compile class for JSP
错误,当我将上面的代码修改为:
<form:form method="post" action="authenticate" modelAttribute="userInfo">
<div class="form-group">
<label for="exampleInputEmail1">User Name</label>
<i class="fa fa-user"></i>
<input type="text" name="loginID" id="username"/>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<i class="fa fa-lock"></i>
<input type="password" class="form-control" name="password" id="password" />
</div>
<div>
<button type="submit" class="btn btn-danger">Login</button>
</div>
</form:form>
现在一切正常。
问题是为什么上面的代码不能编译而第二个代码运行得很好?
我需要 Tomcat 7 才能使用 <form:*>
标签作为我应用程序的其余部分写在 <form:*>
中Tomcat 7 似乎只支持 <form:form>
的语法仅标记。
EDIT:
似乎 Tomcat 7.0.54 不支持标记,因为我在 Tomcat 7.0.54 上本地运行应用程序,它给出了相同的编译错误。那么我如何才能在 Tomcat 7.0.54 上使用标签运行应用程序,因为我只能使用 openshift Tomcat?有什么变通办法吗?
最佳答案
好吧,我在 open shift Tomcat 7.0.54 上部署的 Spring MVC 应用程序支持除 之外的标签,然后指向位于另一个位置的 SQL SERVER DB现在它指向打开 shift PostgreSQL 的位置。 令人惊讶的是网络应用程序运行良好。但是我没有得到它早些时候给出错误的确切原因。 我想有这样一些可能的原因:
1。用于编译 JSP 的 JAR 文件可能在打开的 Shift Tomcat 库位置损坏。 2. 本地 tomcat Lib Jars 和 open shift Tomcat lib Jars 之间的 JAR 版本不匹配。 3. WAR 文件未使用正确版本的 Jars 正确构建,或者可能是某些意外原因。 4. WAR在open shift tomcat中部署不正确。
关于java - 为什么 OpenShift Tomcat 7 (JBoss EWS 2.0) 不支持 <form :*> tags of spring MVC in jsps?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747370/