JSP Struts 2 -具有数千个选项的多选择

92dk7w1h  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(150)

我在JSP中的<s:form>标记中有以下多选块。当我提交表单时,action方法工作正常。

<s:select
  id="prodSelect"
  list="#application.actionForm.vtrProduct"
  name="repSearchProdVO.product"
  multiple="true"
  emptyOption="false"
  headerKey="-1"
  theme="simple"
  style="
    font-size: 14px;
    color: #000069;
    font-family: 'Arial, Helvetica, sans-serif';
    height: 20px;
    width: 240px;
  "
  value="#session.repSearchVO.product"
/>

字符串
但是repSearchProdVO.product只能处理890个选项,我有3000多个选项需要选择,当我选择2000个选项时,它仍然返回890个选项。
我将感激任何帮助。

vd2z7a6w

vd2z7a6w1#

我忘了说服务器是Tomcat 9.0.75。server.xml中端口8080的maxParameterCount默认值为1000。我将其更改为10000,一切都按预期工作。这可能会帮助某些人。

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           maxParameterCount="10000"
           />

字符串

qncylg1j

qncylg1j2#

在Struts 2中,没有办法将<s:select>用于大型数据集。因为它呈现一个简单的HTML <select>,它受到显示大小选项的限制。如果您设置了更多选项,它们只是隐藏在显示尺寸后面。如果您需要在大型数据集中选择多个选项,那么您可以使用带有结果查询的请求。
例如,<sj:autocompleter>可以帮助您通过使用搜索词进行远程https请求来查询拉格数据集。
它具有multiselect属性
创建一个多重选择。如果值通过value属性作为Array或Collection(适当类型)传递,则标记将预先选择多个值。如果其中一个键等于Collection或Array中的一个值,则它将被选中。
您可以在this answer中找到自动完成器小部件的示例。

相关问题