在我的应用程序中使用struts 2框架和tile。 现在,我想使用displaytag在数据库表中显示数据。我做了以下事情:
在我的struts.xml中:
<action name="users_admin" class="com.controller.admin.UserAction">
<interceptor-ref name="checkSession" />
<result name="login">/login.jsp</result>
<result type="tiles" name="none">/users_admin.tiles</result>
</action>
在文件UserAction中:
public class UserAction extends ActionSupport{
private List<Users> listUsers;
private String myActionName;
public String getMyActionName() {
return myActionName;
}
public void setMyActionName(String myActionName) {
this.myActionName = myActionName;
}
public List<Users> getListUsers() {
return listUsers;
}
public void setListUsers(List<Users> listUsers) {
this.listUsers = listUsers;
}
@Override
public String execute() throws Exception {
listUsers = UserServices.selectAll();
return NONE;
}
}
并在文件user_admin.jsp(文件在tile中使用):
<s:actionerror cssStyle="color:red"/>
<div class="well">
<display:table name="listUsers" id="listUsers" requestURI="/UserAction" cellpadding="5px;"
cellspacing="5px;" style="margin-left:50px;margin-top:20px;">
<display:column property="EMAIL" title="Email"/>
<display:column property="NAME" title="Name"/>
</display:table>
</div>
文件用户模型:
package com.model;
public class Users {
private String EMAIL;
private String NAME;
public String getEMAIL() {
return EMAIL;
}
public void setEMAIL(String EMAIL) {
this.EMAIL = EMAIL == null ? null : EMAIL.trim();
}
public String getNAME() {
return NAME;
}
public void setNAME(String NAME) {
this.NAME = NAME == null ? null : NAME.trim();
}
}
当我在apache tomcat log
中运行应用程序时发生错误org.apache.catalina.core.ApplicationDispatcher.invoke Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.apache.commons.collections.IteratorUtils
谁能帮助我指出为什么错误,在解决方案中克服它?
答案 0 :(得分:0)
将commons-collections-3.1.jar
添加到您的库中。
请注意,您只使用一个拦截器,除非checkSession
是您的堆栈名称。
修改强>
拦截器checkSession检查我在网站上的日志。我应该如何使用。
您可以定义自定义拦截器堆栈,然后引用它,或者为单个操作包含您的自定义拦截器和另一个堆栈(例如,默认堆栈),如下所示:
<action name="users_admin" class="com.controller.admin.UserAction">
<interceptor-ref name="checkSession" />
<interceptor-ref name="defaultStack" />
<result name="login">/login.jsp</result>
<result type="tiles" name="none">/users_admin.tiles</result>
</action>