struts2验证失败后返回input,select中list数据丢失解决方法
2011-09-28 17:04
771 查看
解决思路:自己建立el标签,通过静态方法。
代码如下:
1: data.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>myf</short-name>
<function>
<description>getAppList</description>
<name>getAppList</name>
<!-- 调用EL方法的名称 -->
<function-class>com.tongtech.em.view.application.storage.DataUtils</function-class>
<function-signature>
java.lang.String getAppList(java.lang.String,java.lang.String,java.lang.String)
</function-signature>
<example>${myf:getAppList(1,2)}</example>
<!-- 例如 -->
</function>
</taglib>
2:
类 DataUtils
package com.tongtech.em.view.application.storage;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.tongtech.em.master.storage.AppInfo;
import com.tongtech.em.master.storage.ManagerImpl;
import com.tongtech.em.master.storage.StorageAreaInfo;
import com.tongtech.em.master.usermanager.AuthenticationService;
import com.tongtech.em.persistence.usermanager.dataobject.User;
public final class DataUtils {
public static String getAppList(String appId, String areaId, String storageId) {
ManagerImpl applicationService = new ManagerImpl();
List<AppInfo> list = new ArrayList<AppInfo>();
list = applicationService.getAppInfos(areaId, storageId);
StringBuffer temp = new StringBuffer("<select id =\"existNameSelect\" name=\"appNameExist\" theme=\"simple\" onchange=\"changeData(this)\">");
if (StringUtils.isEmpty(appId)) {
temp.append("<option value=\"\" selected>请选择</option>");
} else {
temp.append("<option value=\"\">请选择</option>");
}
for (AppInfo appInfo : list) {
if (appInfo.getAppId().equals(appId)) {
temp.append("<option value=\"" + appInfo.getAppId() + "\" selected>" + appInfo.getAppName() + "</option>");
} else {
temp.append("<option value=\"" + appInfo.getAppId() + "\" >" + appInfo.getAppName() + "</option>");
}
}
temp.append("</select>");
return temp.toString();
}
}
3:页面显示:<%@taglib uri="/WEB-INF/tlds/data.tld" prefix="myf"%>
调用: ${myf:getAppList(appInfo.appId,appInfo.areaId,appInfo.storageId)}
代码如下:
1: data.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>myf</short-name>
<function>
<description>getAppList</description>
<name>getAppList</name>
<!-- 调用EL方法的名称 -->
<function-class>com.tongtech.em.view.application.storage.DataUtils</function-class>
<function-signature>
java.lang.String getAppList(java.lang.String,java.lang.String,java.lang.String)
</function-signature>
<example>${myf:getAppList(1,2)}</example>
<!-- 例如 -->
</function>
</taglib>
2:
类 DataUtils
package com.tongtech.em.view.application.storage;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.tongtech.em.master.storage.AppInfo;
import com.tongtech.em.master.storage.ManagerImpl;
import com.tongtech.em.master.storage.StorageAreaInfo;
import com.tongtech.em.master.usermanager.AuthenticationService;
import com.tongtech.em.persistence.usermanager.dataobject.User;
public final class DataUtils {
public static String getAppList(String appId, String areaId, String storageId) {
ManagerImpl applicationService = new ManagerImpl();
List<AppInfo> list = new ArrayList<AppInfo>();
list = applicationService.getAppInfos(areaId, storageId);
StringBuffer temp = new StringBuffer("<select id =\"existNameSelect\" name=\"appNameExist\" theme=\"simple\" onchange=\"changeData(this)\">");
if (StringUtils.isEmpty(appId)) {
temp.append("<option value=\"\" selected>请选择</option>");
} else {
temp.append("<option value=\"\">请选择</option>");
}
for (AppInfo appInfo : list) {
if (appInfo.getAppId().equals(appId)) {
temp.append("<option value=\"" + appInfo.getAppId() + "\" selected>" + appInfo.getAppName() + "</option>");
} else {
temp.append("<option value=\"" + appInfo.getAppId() + "\" >" + appInfo.getAppName() + "</option>");
}
}
temp.append("</select>");
return temp.toString();
}
}
3:页面显示:<%@taglib uri="/WEB-INF/tlds/data.tld" prefix="myf"%>
调用: ${myf:getAppList(appInfo.appId,appInfo.areaId,appInfo.storageId)}
相关文章推荐
- ssh 项目中struts2 "input"返回后无法执行Action解决方法
- struts2两个input方法的action,出错后总是返回到Input页面的解决方法
- 关于flask表单验证json数据不通过总是返回False的解决方法(flask wtforms: Validation always false)
- SSH 与jQuery的Ajax整合时,返回数据的时失败的解决方法
- EVP_DecryptFinal_ex调用返回失败,解密数据错误的解决方法
- jquery ui dialog 中使用select2 导致select2的input失去焦点的解决方法
- 虚拟主机时常出现MAC验证失败错误之解决方法(转)
- Struts2教程4:使用validate方法验证数据
- Token验证失败的解决方法
- [struts2] Struts2中采用Json返回List对象数据为空解决方案
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- Struts2下的用户权限验证问题解决方法
- Struts2教程4:使用validate方法验证数据
- PASV模式失败正在尝试PORT或数据Sock错误的解决方法
- struts2 提交表单后,不走action中的方法,直接返回input
- python3.4环境下新建django应用失败报错"计算机中丢失python27.dll"的解决方法
- Yii2 联表查询数据丢失,即出现主键覆盖情况的解决方法
- 写student类中的select,delete,update,insert方法并在objectDataSource中应用(分别写两个,一个返回datatable,一个使用list)
- struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)
- phpcms v9中formvalidator无法验证时间插件返回的数据解决办法