当我想使用Struts2标签显示数据库中的数据时:
我的JSP中存在问题,但它没有显示任何内容。虽然在Console中我有结果
我的Action
课程:
public class ObjectifAction extends ActionSupport implements ModelDriven<Objectif> {
/**
*
*/
private static final long serialVersionUID = 1L;
Objectif objectif = new Objectif();
List<Objectif> objectifs = new ArrayList<Objectif>();
ObjectifDAO objdao= new ObjectifDAO();
//objdao.countTotal();
public String afficher()
{
int i=0,taille;
objectifs = objdao.afficher();
taille=objdao.countTotal();
for(i=0;i<taille;i++){
System.out.println(objectifs.get(i).getDescription());
}
return "success";
}
public Objectif getObjectif() {
return objectif;
}
public void setObjectif(Objectif objectif) {
this.objectif = objectif;
}
public List<Objectif> getObjectifs() {
return objectifs;
}
public void setObjectifs(List<Objectif> objectifs) {
this.objectifs = objectifs;
}
public ObjectifDAO getObjdao() {
return objdao;
}
public void setObjdao(ObjectifDAO objdao) {
this.objdao = objdao;
}
@Override
public Objectif getModel() {
// TODO Auto-generated method stub
return objectif;
}
}
我的JSP页面:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<table>
<tr>
<td>id</td>
</tr>
<s:iterator value="objectifs" var="o">
<tr>
<td><s:property value="#o.id_objectif_metier"/></td>
</tr>
</s:iterator>
</table>
</body>
</html>
它没有显示任何内容,请帮助!
这是我的struts.xml
文件:
我认为JSP页面中存在错误。它仅显示没有数据的列的名称
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
<!-- <constant name="struts.action.extension" value="xhtml,,xml,json,action"/> -->
<package name="rest" extends="rest-default" namespace="/rest">
</package>
<package name="default" extends="struts-default, json-default"
namespace="/">
<interceptors>
<interceptor class="ma.interceptors.LoginInterceptor"
name="loginInterceptor">
</interceptor>
<interceptor-stack name="loginStack">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="defaultStack">
<param name="exception.logEnabled">true</param>
<param name="exception.logLevel">ERROR</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<global-results>
<result name="login">index.jsp</result>
<result name="error">errors/error.jsp</result>
</global-results>
<action name="Connect" class="ma.actions.UtilisateurAction" method="Connect">
<result name="ADMIN" type="redirect">admin</result>
<result name="input" type="redirect">index.jsp</result>
</action>
<action name="admin">
<interceptor-ref name="loginStack" />
<result>/WEB-INF/admin/index.jsp</result>
</action>
<action name="listerObjectif" class="ma.actions.ObjectifAction" method="afficher">
<interceptor-ref name="loginStack" />
<result name="success" type="redirect">objectif</result>
</action>
<action name="objectif">
<interceptor-ref name="loginStack" />
<result>/WEB-INF/admin/objectif/objectif.jsp</result>
</action>
</package>
我不认为这里有错误吗?
答案 0 :(得分:0)
Struts用于执行操作,然后返回带有结果的JSP。但是,如果要重定向到另一个URL,则使用redirect
结果类型。这样做可以省去JSP中使用的所有内容,以填充控件中的数据。改变
<action name="listerObjectif" class="ma.actions.ObjectifAction" method="afficher">
<interceptor-ref name="loginStack" />
<result>/WEB-INF/admin/objectif/objectif.jsp</result>
</action>