在 Struts 2 中使用 属性 标签显示来自数据库的数据
Display data from database with the property tag in Struts 2
当我想使用 Struts 2 个标签显示来自数据库的数据时:
我的 JSP 有问题,它没有显示任何内容。虽然在控制台中我得到了结果
我的Action
class:
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>
我认为这里没有错误?
Struts 用于执行一个动作,然后 return 一个 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>
当我想使用 Struts 2 个标签显示来自数据库的数据时:
我的 JSP 有问题,它没有显示任何内容。虽然在控制台中我得到了结果
我的Action
class:
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>
我认为这里没有错误?
Struts 用于执行一个动作,然后 return 一个 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>