gpt4 book ai didi

jsp - 使用 Struts2-jQuery-grid 插件在可编辑网格列中使用下拉列表

转载 作者:行者123 更新时间:2023-12-04 20:43:27 27 4
gpt4 key购买 nike

我正在尝试使用 Struts2-jQuery-grid-3.7.0 在网格列中填充下拉列表插件如下。

<s:url id="dataURL" action="CategoryList" namespace="/admin_side"/>

<sjg:gridColumn name="subCategory.category.catName"
index="subCategory.category.catName"
edittype="select"
searchtype="select"
formoptions="{label:'Select'}"
surl="%{dataURL}"
editoptions="{dataUrl : '%{dataURL}'}"
editrules="{required: true}"
title="Category" width="200"
sortable="true" search="true"
editable="true" sorttype="text"/>

而 Action 所在的 CategoryList Action 映射如下。
@Namespace("/admin_side")
@ResultPath("/WEB-INF/content")
@ParentPackage(value="struts-default")
public final class CategoryList extends ActionSupport implements Serializable {
@Autowired
private final transient Service service = null;
private List<Category>categories = new ArrayList<Category>();

private static final long serialVersionUID = 1L;

public List<Category> getCategories() {
return categories;
}

@Action(value = "CategoryList",
results = {
@Result(name = ActionSupport.SUCCESS, location = "Product.jsp"),
@Result(name = ActionSupport.INPUT, location = "Product.jsp")},
interceptorRefs = {
@InterceptorRef(value = "defaultStack", params = {"validation.validateAnnotatedMethodOnly", "true", "validation.excludeMethods", "load"})})
public String load() throws Exception {
System.out.println("load called...");
categories = service.getCatgeoryList();
return ActionSupport.SUCCESS;
}
}

单击网格上的给定编辑链接时, load()方法在从数据库加载类别列表的地方执行。

但是,网格中的列表在编辑模式下不显示任何内容(单击编辑链接时)。我找不到可以证明这种事情的相关例子。

特别是如何填充这个下拉列表,如何使用 catName 给这个下拉标签使用 catId 的属性和值( Long 类型的)属性单独(而列表中的 category 有许多其他属性)?

我没有找到相关示例来映射 java.util.List<E><sjg:grid> .
subCategory.category.catNameProduct 的嵌套属性实体。

在这种情况下,即使在填充列表之后,也要注意该列的显示值为 catName (字符串类型的类别名称)。但是,所选项目的值将设置为 Product 的实例应该是 catId (Long 类型的类别 ID)这似乎不可能,因为该列的名称是 subCategory.category.catName .

直觉上, catId ( subCategory.category.catId ) 将映射到 catName ( subCategory.category.catName ) 如果我能正确地想象列表已经填充,那将是错误的。

最佳答案

在 Struts 2 中,HTML 下拉列表可以通过 <s:select> 呈现。标签。要为下拉列表自动选择默认值,只需声明 “value”标签中的属性,并相应地设置默认值。

示例:

用于生成下拉框选择选项的 Java 列表。

//...
public class SelectAction extends ActionSupport {

private List<String> searchEngine;
private String yourSearchEngine;

//set default value
public String getDefaultSearchEngine() {
return "yahoo.com";
}

public SelectAction() {
searchEngine = new ArrayList<String>();
searchEngine.add("google.com");
searchEngine.add("bing.com");
searchEngine.add("yahoo.com");
searchEngine.add("baidu.com");
}
//...
}

标签来呈现 HTML 下拉框。 value=”defaultSearchEngine”会调用对应的Action类 getDefaultSearchEngine()返回默认搜索引擎值的方法。

许多行动都有共同的关注点。某些操作需要验证输入。其他操作可能需要对文件上传进行预处理。另一个 Action 可能需要防止双重提交。许多 Action 需要 drop-down lists和其他控件在页面显示之前预先填充。
<s:select label="What's your favor search engine" 
headerKey="-1" headerValue="Select Search Engines"
list="searchEngine"
name="yourSearchEngine"
value="defaultSearchEngine" />

在本例中,下拉框将自动选择“yahoo.com”作为默认选项。

将 Struts2 jQuery 插件标签库添加到您的 JSP
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>

在 Head 标签中启用 jQuery Grid 插件
<sj:head jqueryui="true" jquerytheme="redmond" />

更新:

在 JSP 中指定编辑 URL
<s:url var="editurl" action="edit-grid-entry"/>

并通过在 JSP 中设置以下属性来启用编辑
 <sjg:grid ... editurl="%{editurl}" ...>

然后定义哪个列应该是可编辑的
<sjg:gridColumn ...
editable="true"
edittype="<type>"
editoptions="{<options>}"
editrules="{<rules>}"
... />

编辑选项示例:
<sjg:gridColumn 
name="country"
index="country"
title="Country"
editable="true"
edittype="select"
editoptions="{value:'France:France;USA:USA;Australia:Australia;Norway:Norway;Spain:Spain'}"/>

编辑规则示例:
<sjg:gridColumn name="creditLimit"
index="creditLimit"
title="Credit Limit"
editable="true"
editrules="{
number: true,
required: true,
minValue : 100.0,
maxValue : 10000.0
}"
formatter="currency"/>

更新:1
<select name="catid" size="15" id="dataURL" multiple="multiple">    
<option value="1 - One ">1 - One </option>
<option value="2 - Two">2 - Two</option>
<option value="3 - Three">3 - Three</option>
<option value="4 - Four">4 - Four</option>
<option value="5 - Five">5 - Five</option>
</select>

关于jsp - 使用 Struts2-jQuery-grid 插件在可编辑网格列中使用下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21987390/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com