<logic:empty>一般用于判断在某个collection是否为空,参考以下列子
<logic:empty name="nameList">
...
</logic:empty>
该句子等同于:
if (nameList.isEmpty()) {
...
}
请注意他与<logic:present>的区别(nameList != null)
<logic:empty name="nameList">
...
</logic:empty>
该句子等同于:
if (nameList.isEmpty()) {
...
}
请注意他与<logic:present>的区别(nameList != null)
解决方案 »
- struts2拦截器中,发现session过期,如何在拦截到的ajax请求后跳转页面
- list可以强转换为map?
- struts2 json得不到继承过来的属性
- 比较初级的struts2路径问题
- jdbc和hibernate的区别.
- bean:write如何取得一个对象中嵌套的另一对象中的值
- tree根节点都有上千,数据量大,怎样做网页优化展示。有主意的戳进来
- 关于系统结构的问题
- WEBLOGIC的怪问题,我配好JB+WEBLOGIC后,正常使用,关机重启后就出错,具体见内
- HQL多对一查询出现空指针异常,求解,代码如下
- 谁能给我一个简单的EJB例了
- 对《J2EE应用开发(Weblogic+Jbuilder)》中网上购书系统例子的一个疑问
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title>Test struts-logic Emptiness Tags</title>
</head>
<body bgcolor="white"><div align="center">
<h1>Test struts-logic Emptiness Tags</h1>
</div><jsp:useBean id="bean" scope="page" class="org.apache.struts.webapp.exercise.TestBean"/><table border="1">
<tr>
<th>Test Type</th>
<th>Correct Value</th>
<th>Test Result</th>
</tr>
<tr>
<td>missing bean, no property attribute</td>
<td>empty</td>
<td>
<logic:empty name="missingBean">
empty
</logic:empty>
<logic:notEmpty name="missingBean">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>not-missing bean, no property attribute</td>
<td>notEmpty</td>
<td>
<logic:empty name="bean">
empty
</logic:empty>
<logic:notEmpty name="bean">
notEmpty
</logic:notEmpty>
</td>
</tr> <tr>
<td>null</td>
<td>empty</td>
<td>
<logic:empty name="bean" property="nullProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="nullProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>empty string</td>
<td>empty</td>
<td>
<logic:empty name="bean" property="emptyStringProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="emptyStringProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>non-empty string</td>
<td>notEmpty</td>
<td>
<logic:empty name="bean" property="stringProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="stringProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>empty collection</td>
<td>empty</td>
<td>
<logic:empty name="bean" property="emptyListProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="emptyListProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>non-empty collection</td>
<td>notEmpty</td>
<td>
<logic:empty name="bean" property="listProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="listProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>empty map</td>
<td>empty</td>
<td>
<logic:empty name="bean" property="emptyMapProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="emptyMapProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>non-empty map</td>
<td>notEmpty</td>
<td>
<logic:empty name="bean" property="mapProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="mapProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
<tr>
<td>unsupported object</td>
<td>notEmpty</td>
<td>
<logic:empty name="bean" property="intProperty">
empty
</logic:empty>
<logic:notEmpty name="bean" property="intProperty">
notEmpty
</logic:notEmpty>
</td>
</tr>
</table></body>
</html>
<--------jsp end--------------
package org.apache.struts.webapp.exercise;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.LabelValueBean;
/**
* General purpose test bean for Struts custom tag tests.
*
* @author Craig R. McClanahan
* @author Martin F N Cooper
* @version $Revision: 1.8 $ $Date: 2002/10/12 19:21:18 $
*/public class TestBean extends ActionForm { /**
* A collection property where the elements of the collection are
* of type <code>LabelValueBean</code>.
*/
private Collection beanCollection = null; public Collection getBeanCollection() {
if (beanCollection == null) {
Vector entries = new Vector(10); entries.add(new LabelValueBean("Label 0", "Value 0"));
entries.add(new LabelValueBean("Label 1", "Value 1"));
entries.add(new LabelValueBean("Label 2", "Value 2"));
entries.add(new LabelValueBean("Label 3", "Value 3"));
entries.add(new LabelValueBean("Label 4", "Value 4"));
entries.add(new LabelValueBean("Label 5", "Value 5"));
entries.add(new LabelValueBean("Label 6", "Value 6"));
entries.add(new LabelValueBean("Label 7", "Value 7"));
entries.add(new LabelValueBean("Label 8", "Value 8"));
entries.add(new LabelValueBean("Label 9", "Value 9")); beanCollection = entries;
} return (beanCollection);
} public void setBeanCollection(Collection beanCollection) {
this.beanCollection = beanCollection;
}
/**
* A multiple-String SELECT element using a bean collection.
*/
private String[] beanCollectionSelect = { "Value 1", "Value 3",
"Value 5" }; public String[] getBeanCollectionSelect() {
return (this.beanCollectionSelect);
} public void setBeanCollectionSelect(String beanCollectionSelect[]) {
this.beanCollectionSelect = beanCollectionSelect;
}
/**
* A boolean property whose initial value is true.
*/
private boolean booleanProperty = true; public boolean getBooleanProperty() {
return (booleanProperty);
} public void setBooleanProperty(boolean booleanProperty) {
this.booleanProperty = booleanProperty;
}
/**
* A multiple-String SELECT element using a collection.
*/
private String[] collectionSelect = { "Value 2", "Value 4",
"Value 6" }; public String[] getCollectionSelect() {
return (this.collectionSelect);
} public void setCollectionSelect(String collectionSelect[]) {
this.collectionSelect = collectionSelect;
}
/**
* A double property.
*/
private double doubleProperty = 321.0; public double getDoubleProperty() {
return (this.doubleProperty);
} public void setDoubleProperty(double doubleProperty) {
this.doubleProperty = doubleProperty;
}
/**
* A boolean property whose initial value is false
*/
private boolean falseProperty = false; public boolean getFalseProperty() {
return (falseProperty);
} public void setFalseProperty(boolean falseProperty) {
this.falseProperty = falseProperty;
}
/**
* A float property.
*/
private float floatProperty = (float) 123.0; public float getFloatProperty() {
return (this.floatProperty);
} public void setFloatProperty(float floatProperty) {
this.floatProperty = floatProperty;
}
* Integer arrays that are accessed as an array as well as indexed.
*/
private int intArray[] = { 0, 10, 20, 30, 40 }; public int[] getIntArray() {
return (this.intArray);
} public void setIntArray(int intArray[]) {
this.intArray = intArray;
} private int intIndexed[] = { 0, 10, 20, 30, 40 }; public int getIntIndexed(int index) {
return (intIndexed[index]);
} public void setIntIndexed(int index, int value) {
intIndexed[index] = value;
}
private int intMultibox[] = new int[0]; public int[] getIntMultibox() {
return (this.intMultibox);
} public void setIntMultibox(int intMultibox[]) {
this.intMultibox = intMultibox;
} /**
* An integer property.
*/
private int intProperty = 123; public int getIntProperty() {
return (this.intProperty);
} public void setIntProperty(int intProperty) {
this.intProperty = intProperty;
}
/**
* A long property.
*/
private long longProperty = 321; public long getLongProperty() {
return (this.longProperty);
} public void setLongProperty(long longProperty) {
this.longProperty = longProperty;
}
/**
* A multiple-String SELECT element.
*/
private String[] multipleSelect = { "Multiple 3", "Multiple 5",
"Multiple 7" }; public String[] getMultipleSelect() {
return (this.multipleSelect);
} public void setMultipleSelect(String multipleSelect[]) {
this.multipleSelect = multipleSelect;
}
/**
* A nested reference to another test bean (populated as needed).
*/
private TestBean nested = null; public TestBean getNested() {
if (nested == null)
nested = new TestBean();
return (nested);
}
/**
* A String property with an initial value of null.
*/
private String nullProperty = null; public String getNullProperty() {
return (this.nullProperty);
} public void setNullProperty(String nullProperty) {
this.nullProperty = nullProperty;
}
/**
* A short property.
*/
private short shortProperty = (short) 987; public short getShortProperty() {
return (this.shortProperty);
} public void setShortProperty(short shortProperty) {
this.shortProperty = shortProperty;
}
/**
* A single-String value for a SELECT element.
*/
private String singleSelect = "Single 5"; public String getSingleSelect() {
return (this.singleSelect);
} public void setSingleSelect(String singleSelect) {
this.singleSelect = singleSelect;
}
/**
* String arrays that are accessed as an array as well as indexed.
*/
private String stringArray[] =
{ "String 0", "String 1", "String 2", "String 3", "String 4" }; public String[] getStringArray() {
return (this.stringArray);
} public void setStringArray(String stringArray[]) {
this.stringArray = stringArray;
} private String stringIndexed[] =
{ "String 0", "String 1", "String 2", "String 3", "String 4" }; public String getStringIndexed(int index) {
return (stringIndexed[index]);
} public void setStringIndexed(int index, String value) {
stringIndexed[index] = value;
}
private String stringMultibox[] = new String[0]; public String[] getStringMultibox() {
return (this.stringMultibox);
} public void setStringMultibox(String stringMultibox[]) {
this.stringMultibox = stringMultibox;
} /**
* A String property.
*/
private String stringProperty = "This is a string"; public String getStringProperty() {
return (this.stringProperty);
} public void setStringProperty(String stringProperty) {
this.stringProperty = stringProperty;
} /**
* An empty String property.
*/
private String emptyStringProperty = ""; public String getEmptyStringProperty() {
return (this.emptyStringProperty);
} public void setEmptyStringProperty(String emptyStringProperty) {
this.emptyStringProperty = emptyStringProperty;
}
/**
* A single-String value for a SELECT element based on resource strings.
*/
private String resourcesSelect = "Resources 2"; public String getResourcesSelect() {
return (this.resourcesSelect);
} public void setResourcesSelect(String resourcesSelect) {
this.resourcesSelect = resourcesSelect;
}
/**
* A property that allows a null value but is still used in a SELECT.
*/
private String withNulls = null; public String getWithNulls() {
return (this.withNulls);
} public void setWithNulls(String withNulls) {
this.withNulls = withNulls;
}/**
* A List property.
*/
private List listProperty = null; public List getListProperty() {
if (listProperty == null) {
listProperty = new ArrayList();
listProperty.add("dummy");
}
return listProperty;
} public void setListProperty(List listProperty) {
this.listProperty = listProperty;
} /**
* An empty List property.
*/
private List emptyListProperty = null; public List getEmptyListProperty() {
if (emptyListProperty == null) {
emptyListProperty = new ArrayList();
}
return emptyListProperty;
} public void setEmptyListProperty(List emptyListProperty) {
this.emptyListProperty = emptyListProperty;
}
/**
* A Map property.
*/
private Map mapProperty = null; public Map getMapProperty() {
if (mapProperty == null) {
mapProperty = new HashMap();
mapProperty.put("dummy", "dummy");
}
return mapProperty;
} public void setMapProperty(Map mapProperty) {
this.mapProperty = mapProperty;
} /**
* An empty Map property.
*/
private Map emptyMapProperty = null; public Map getEmptyMapProperty() {
if (emptyMapProperty == null) {
emptyMapProperty = new HashMap();
}
return emptyMapProperty;
} public void setEmptyMapProperty(Map emptyMapProperty) {
this.emptyMapProperty = emptyMapProperty;
}
// --------------------------------------------------------- Public Methods
/**
* Reset the properties that will be received as input.
*/
public void reset(ActionMapping mapping, HttpServletRequest request) { booleanProperty = false;
collectionSelect = new String[0];
intMultibox = new int[0];
multipleSelect = new String[0];
stringMultibox = new String[0];
if (nested != null)
nested.reset(mapping, request); }
}<--------java end--------------