为什么 OpenShift Tomcat 7 (JBoss EWS 2.0) 不支持 jsps 中 spring MVC 的 <form:*> 标签?
Why does OpenShift Tomcat 7 (JBoss EWS 2.0) does not support <form:*> tags of spring MVC in jsps?
在我的 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
error 当我将上面的代码修改为:
<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 位于另一个位置,现在它指向打开班次 PostgreSQL。
令人惊讶的是网络应用 运行 很好。但是我没有得到它早些时候给出错误的确切原因。
我想有这样一些可能的原因:
1.用于编译 JSP 的 JAR 文件可能在打开的 shift Tomcat 库位置损坏。
2. 本地 tomcat Lib Jars 和打开 shift Tomcat lib Jars 之间的 JAR 版本不匹配。
3. WAR 文件未使用正确版本的 Jars 正确构建,或者可能是某些意外原因。
4. WAR 未正确部署在开班 tomcat.
在我的 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
error 当我将上面的代码修改为:
<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 位于另一个位置,现在它指向打开班次 PostgreSQL。 令人惊讶的是网络应用 运行 很好。但是我没有得到它早些时候给出错误的确切原因。 我想有这样一些可能的原因:
1.用于编译 JSP 的 JAR 文件可能在打开的 shift Tomcat 库位置损坏。 2. 本地 tomcat Lib Jars 和打开 shift Tomcat lib Jars 之间的 JAR 版本不匹配。 3. WAR 文件未使用正确版本的 Jars 正确构建,或者可能是某些意外原因。 4. WAR 未正确部署在开班 tomcat.