struts2-jquery 相关问题

一个Struts 2插件,提供基于jQuery和jQuery UI的Ajax UI小部件。

为什么在Struts 2中上传文件我的文件对象为空?

我正在尝试修复此代码,使用 Struts 2 上传图像文件。 当我调试时,我在我的动作类中验证,我的变量描述符,描述符内容类型和描述符文件名都是comi...

回答 1 投票 0

如何使用 <s:select> 标签在 Struts 2 中对数千个选项进行多选?

我在JSP中有以下多选块 在 标签内。当我提交表格时, 操作方法工作正常。 我在 JSP 中有以下多选块 在 <s:form> 标签内。当我提交表格时, 操作方法工作正常。 <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 个选项。 在 Struts 2 中,无法将 <s:select> 用于大型数据集。因为它呈现一个简单的 HTML <select>,它受到显示大小选项的限制。如果您设置更多选项,它们只会隐藏在您的显示尺寸后面。如果您需要在大型数据集中选择多个选项,那么您可以使用带有结果查询的请求。 例如<sj:autocompleter>可以通过搜索词使用的远程https请求来帮助您查询大型数据集。 它有一个 multiselect 属性 创建多项选择。如果值通过 value 属性作为数组或集合(适当类型)传递,则标记将预先选择多个值。如果其中一个键等于集合或数组中的值之一,它将被选择。 您可以在this答案中找到自动完成器小部件的示例。 我忘了提及服务器是Tomcat 9.0.75。 maxParameterCount中端口8080的server.xml的默认值为1000。我将其更改为10000,一切都按预期工作。这可能会对某人有所帮助。 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="10000" />

回答 2 投票 0

在 Struts 2 中使用自动完成功能后,没有为操作和结果“输入”定义结果

我收到错误: 没有为操作和结果“输入”定义结果。 直到我使用 Struts 2 自动完成时它才出现。 这是我的自动完成代码: 我收到错误: 没有为操作和结果“输入”定义结果。 直到我使用 Struts 2 自动完成时它才出现。 这是我的autocomplete代码: <s:form class="form-horizontal" style="margin:0 auto" role="form" theme="simple" action="Reports_open_cases"> <h4>Open Cases</h4> ..some controls here <div class="form-group"> <div class="col-xs-12 col-sm-4 col-md-4"></div> <div class="col-xs-12 col-sm-4 col-md-4" > <s:url id="advURL" action="xyz_action"/> <sj:select id="abc" name="abc" selectBoxIcon="true" href="%{advURL}" list="list_abc" listValue="name" listKey="Id " autocomplete="true" cssClass="form-control" /> </div> <div class="col-xs-12 col-sm-12 col-md-12 pull-right" style="text-align:right"><br> <div class="modal-footer" style="margin:0px; padding:10px 0px 10px"> <button class="btn btn-success" type="submit">Generate</button> &nbsp;&nbsp; <button class="btn btn-default" type="Reset">Reset</button> </div> </div> </s:form> 我的struts.xml(行动): <constant name="struts.devMode" value="true" /> <constant name="struts.multipart.maxSize" value="20000000" /> <package name="login" extends="struts-default,json-default" namespace="/"> <interceptors> <interceptor class="vercelon.actions.LoginInterceptor" name="loginInterceptor"> </interceptor> <interceptor-stack name="loginStack"> <interceptor-ref name="loginInterceptor"/> <interceptor-ref name="defaultStack"/> <interceptor-ref name="fileUpload"><param name="maximumSize">10485760</param> </interceptor-ref> </interceptor-stack> </interceptors> <action name="Reports_open_cases" class="vercelon.actions.Report" method="Generate_OpenCases"> <result name="success">/CMS/Reports_OpenCases.jsp</result> <result name="ERROR">/Error.jsp</result> <result name="input">/CMS/Reports_Menu.jsp</result> </action> <action name="xyz_action" class="vercelon.actions.Report" method="loadreports"> <result name="success" type="json"></result> </action> 除了将下拉菜单替换为自动完成之外,我没有进行任何其他更改。 当我将输入添加到我的struts.xml时,它不会显示此错误。但为我的表单定义的操作也不起作用。 我不明白添加此自动完成功能后需要在哪里进行更改。 当您从视图层调用某些操作时,拦截器会在操作执行之前运行。 似乎您的操作使用默认堆栈,其中包括 validation 和 workflow 拦截器。第一个拦截器对扩展 ActionSupport 的操作执行验证,第二个拦截器检查是否存在错误,然后返回 INPUT 结果。 但是,如果您在操作类上使用一些-validation.xml或基于注释的验证,那么映射到此类方法的每个操作都会由上面的拦截器进行验证,除非您已将这些拦截器配置为排除方法,或者使用基于前缀的方法验证方法,或跳过验证注释被应用。 所有这些情况都是为了避免对某些操作未使用的代码运行验证器,并且需要避免它们或重新配置拦截器堆栈以在没有这些拦截器的情况下运行。 在您的情况下,返回 json 结果的操作不需要验证字段而不是 term。如何配置和覆盖相关操作的拦截器配置:如何在同一页面上获取结果,为什么需要输入?. 使用 将 JSON 结果作为自动完成器的选择框的工作示例。 Autocompleter的源代码示例中使用的操作源代码。

回答 1 投票 0

在 Struts 2 中使用自动完成功能后,没有为操作定义结果

我收到错误: 没有为结果输入的操作定义结果。 直到我使用 Struts 2 自动完成时它才出现。 这是我的自动完成代码: 我收到错误: 没有为结果输入的操作定义结果。 直到我使用 Struts 2 自动完成时它才出现。 这是我的autocomplete代码: <s:form class="form-horizontal" style="margin:0 auto" role="form" theme="simple" action="Reports_open_cases"> <h4>Open Cases</h4> ..some controls here <div class="form-group"> <div class="col-xs-12 col-sm-4 col-md-4"></div> <div class="col-xs-12 col-sm-4 col-md-4" > <s:url id="advURL" action="xyz_action"/> <sj:select id="abc" name="abc" selectBoxIcon="true" href="%{advURL}" list="list_abc" listValue="name" listKey="Id " autocomplete="true" cssClass="form-control" /> </div> <div class="col-xs-12 col-sm-12 col-md-12 pull-right" style="text-align:right"><br> <div class="modal-footer" style="margin:0px; padding:10px 0px 10px"> <button class="btn btn-success" type="submit">Generate</button> &nbsp;&nbsp; <button class="btn btn-default" type="Reset">Reset</button> </div> </div> </s:form> 我的struts.xml(行动): <constant name="struts.devMode" value="true" /> <constant name="struts.multipart.maxSize" value="20000000" /> <package name="login" extends="struts-default,json-default" namespace="/"> <interceptors> <interceptor class="vercelon.actions.LoginInterceptor" name="loginInterceptor"> </interceptor> <interceptor-stack name="loginStack"> <interceptor-ref name="loginInterceptor"/> <interceptor-ref name="defaultStack"/> <interceptor-ref name="fileUpload"><param name="maximumSize">10485760</param> </interceptor-ref> </interceptor-stack> </interceptors> <action name="Reports_open_cases" class="vercelon.actions.Report" method="Generate_OpenCases"> <result name="success">/CMS/Reports_OpenCases.jsp</result> <result name="ERROR">/Error.jsp</result> <result name="input">/CMS/Reports_Menu.jsp</result> </action> <action name="xyz_action" class="vercelon.actions.Report" method="loadreports"> <result name="success" type="json"></result> </action> 除了将下拉菜单替换为自动完成之外,我没有进行任何其他更改。 当我将输入添加到我的struts.xml时,它不会显示此错误。但为我的表单定义的操作也不起作用。 我不明白添加此自动完成功能后需要在哪里进行更改。 当您从视图层调用某些操作时,拦截器会在操作执行之前运行。 似乎您的操作使用默认堆栈,其中包括 validation 和 workflow 拦截器。第一个拦截器对扩展 ActionSupport 的操作执行验证,第二个拦截器检查是否存在错误,然后返回 INPUT 结果。 但是,如果您在操作类上使用一些-validation.xml或基于注释的验证,那么映射到此类方法的每个操作都会由上面的拦截器进行验证,除非您已将这些拦截器配置为排除方法,或者使用基于前缀的方法验证方法,或跳过验证注释被应用。 所有这些情况都是为了避免对某些操作未使用的代码运行验证器,并且需要避免它们或重新配置拦截器堆栈以在没有这些拦截器的情况下运行。 在您的情况下,返回 json 结果的操作不需要验证字段而不是 term。如何配置和覆盖相关操作的拦截器配置:如何在同一页面上获取结果,为什么需要输入?. 使用 将 JSON 结果作为自动完成器的选择框的工作示例。 Autocompleter的源代码示例中使用的操作源代码。

回答 1 投票 0

在 Struts 2 中使用 jQuery 的 Ajax 表单提交按钮

我有带有提交按钮的表单,当单击该按钮时,它会转发到下一页并从后端获取所有数据。但是,根据新的要求,页面需要保持不变...

回答 1 投票 0

Struts 2中选择出生日期后如何计算年龄?

我点击下面的链接根据出生日期选择计算年龄: 给出出生日期后自动获取年龄 但我无法计算年龄字段中的日期。 我...

回答 1 投票 0

如何在 Struts 2 jQuery 饼图中设置自定义颜色

我正在实现 Struts 2 JQuery 饼图。我不知道如何为图表设置自定义颜色。在后端,我只是创建一个映射,其中键为字符串,值为整数。我应该具备什么属性...

回答 1 投票 0

$.getJSON 未将数据从 Struts 2 Action 类检索到 JSP 页面

我想从 JSP 页面中的 Struts 2 Action 类中检索字段。 我的 JSP JavaScript 代码能够触发其 Action 类,但无法在

回答 5 投票 0

Struts 2中提交action表单后如何维护弹出窗口?

我有一个使用 Struts 2 创建的 JSP 页面,在该页面中我有一个用于打开弹出窗口的链接,该窗口是使用 jQuery UI 对话框模型表单创建的。 我已经以相同的方式创建了另一种形式...

回答 1 投票 0

onChange 不适用于 Struts 2 中的 DateTimePicker

我有以下代码: 我有以下代码: <sx:datetimepicker name="dateOfBirth" id="dateOfBirth" displayWeeks="5" displayFormat="dd/MM/yyyy" onchange="test()"/> 但是,对于这个 onChange 事件不起作用,尽管我有一个简单的 JavaScript ipt 函数,如下所示: <script> function test(){ alert('hi-----'); } </script> 注意: 我在某处读到,这是 Struts 2 中的一个错误,即 onChange 事件不适用于 <sx:DateTimePicker>。不过,我对此并不确定。有没有找到解决方法? Dojo 标签已弃用。使用 jQuery 标签。您可以找到有关 struts2-jquery-plugin 的更多信息。您应该使用 datepicker 标签。 <%@ taglib prefix="sj" uri="/struts-jquery-tags" %> <head> <link href="<s:url value="/css/template_styles.css"/>" type="text/css" rel="stylesheet"> <sj:head jqueryui="true" /> <title></title> </head> <script type="text/javascript"> $.subscribe('changeTopic', function(event,data) { alert('Date : '+event.originalEvent.dateText); }); </script> <sj:datepicker name="dateOfBirth" id="dateOfBirth" label="DOB" displayFormat="dd/MM/yy" onChangeTopics="changeTopic"/>

回答 1 投票 0

如何从 Struts 2 下拉列表中的数据库以及列表中获取值

我的应用程序使用Struts 2框架,我的代码如下, /*设置服务类型的动态下拉列表*/ ShowSearch drop=new ShowSearch(); 服务=drop.serviceType(); setService(服务...

回答 2 投票 0

如何使用Struts2 jQuery插件<sj:submit>按钮?

我有 Struts 2 jQuery 插件 按钮,当我单击该按钮时,它不会像 Struts 按钮那样触发操作类。我需要在点击后保留相同的页面...

回答 2 投票 0

带选择框的 Struts 2 jQuery 自动完成器不会填充任何值

我在我的 Struts 2 应用程序中使用了 Struts 2 jQuery 自动完成器。 这是我的代码: 联合应用程序: 我在我的 Struts 2 应用程序中使用了 Struts 2 jQuery autocompleter。 这是我的代码: JSP: <s:form id="frm_demo" theme="simple" action="ManagersAutoCompleter1"> <s:url var="remoteurl" action="test" /> <sj:autocompleter href="%{remoteurl}" id="echo3" name="echo" list="itemList" listKey="id" listValue="name" emptyOption="true" headerKey="-1" headerValue="Please Select a Language" selectBox="true" /> <s:submit value="submit" /> </s:form> struts.xml: <action name="test" class="test.TestAction" method="populate"> <result type="json"> </result> </action> 动作类: public String populate() throws Exception { itemList = new ArrayList<ListValue>(); itemList.add(new ListValue("Php", "Php")); itemList.add(new ListValue("Java", "Java")); itemList.add(new ListValue("Mysl", "Mysl")); return SUCCESS; } //getter setter for itemList 列表类: public class ListValue { private String id; private String name; public ListValue(String id, String name) { this.id = id; this.name = name; } //getter setter methods 但是这个 Struts2 jQuery autocompleter 不起作用。它不填充任何值。 做这个 <s:url id="remoteurl" action="test"/> <sj:select id="customersjsonlstid" name="echo" label="Handle a List" href="%{remoteurl}" list="itemList" listValue="name" listKey="id" autocomplete="true" loadMinimumCount="2" id="echo3"/> 而不是这个: <sj:autocompleter href="%{remoteurl}" id="echo3" name="echo" list="itemList" listKey="id" listValue="name" emptyOption="true" headerKey="-1" headerValue="Please Select a Language" selectBox="true" /> 并确保您从操作类返回列表。 要检查这一点,请使用 IDE 调试器或 System.out.print 等执行此操作。 ex... ------------- ------------ itemList.add(new ListValue("Mysl", "Mysl") ); System.out.println("Size of my list="+itemList.size()); return SUCCESS; } 你还应该在你的动作类中定义 getter 和 setter private List itemList; public List getItemList() { return itemList; } public void setItemList(List itemList) { this.itemList = itemList; } 这是错误的: <sj:autocompleter href="%{remoteurl}" id="lst" name="lst" list="itemList" listValue="name" listKey="id" selectBox="true" /> 您正在向自动完成器提供 Map,而不是您自己构建的自定义对象。 HashMap 没有任何 name 和 id 字段,而是具有 key 和 value 字段。 首先更改它,看看它是否有效: <sj:autocompleter href="%{remoteurl}" id="lst" name="lst" list="itemList" listValue="value" listKey="key" selectBox="true" /> 您输入了未引用的错误属性。 <s:url id="remoteurl" action="test" /> 应该是 <s:url var="remoteurl" action="test" /> 使用列表项bean类 public class ListValue { private String id; private String name; ... } public String populate() throws Exception { itemList.add(new ListValue("Php", "Php")); itemList.add(new ListValue("Java","Java") ); itemList.add(new ListValue("Mysl", "Mysl") ); return SUCCESS; } 假设已添加构造函数和修改器。

回答 3 投票 0

Struts 2 中具有数千个选项的多重选择

我在JSP中有以下多选块 在 标签内。当我提交表格时 操作方法工作正常。 我在 JSP 中有以下多选块 在 <s:form> 标签内。当我提交表格时 操作方法工作正常。 <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 个选项。 如果有任何帮助,我将不胜感激。 我忘了提及服务器是Tomcat 9.0.75。 server.xml 中端口 8080 的 maxParameterCount 的默认值为 1000。我将其更改为 10000,一切都按预期工作。这可能会对某人有所帮助。 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="10000" /> 在 Struts 2 中,无法将 <s:select> 用于大型数据集。因为它呈现一个简单的 HTML <select>,它受到显示大小选项的限制。如果您设置更多选项,它们只会隐藏在您的显示尺寸后面。如果您需要在大型数据集中选择多个选项,那么您可以使用带有结果查询的请求。 例如<sj:autocompleter>可以通过搜索词使用的远程https请求来帮助您查询大型数据集。 它有一个 multiselect 属性 创建多项选择。如果值通过 value 属性作为数组或集合(适当类型)传递,则标记将预先选择多个值。如果其中一个键等于集合或数组中的值之一,它将被选择。 您可以在this答案中找到自动完成器小部件的示例。

回答 2 投票 0

sj:使用目标提交且 errorElementId 未正确渲染

我有一个struts应用程序,在其中一个页面中我使用sj:submit提交带有targets和errorElementId属性的页面。我在页面上使用了Struts2验证,结果是...

回答 2 投票 0

<html:multibox> Struts 2 中的等效项

下面是html标签multibox,我想将其迁移到struts 2 ...

回答 1 投票 0

如何在Struts 2中使用CKEditor拦截上传的图片文件

我在网站的不同页面上有一个 CKEditor,所以我将上传设置为 true 以及所有配置内容以使其正常工作,并且图像上传工作得很好,“将其发送到...

回答 1 投票 0

从Struts 2.5升级到Struts 6问题

升级到 Struts 6.3.0.2 后,此 Ajax 调用不起作用。我已经在 pom.xml 中包含了 JQuery 插件。我认为问题是 sj:div。非常感谢对此的任何帮助 <%@ page contentTy...

回答 1 投票 0

org.apache.jasper.JasperException:更新到 struts 6.3.0.2 时处理 [/jsp/include/actionError.jsp] 时发生异常

org.apache.jasper.JasperException:在第 [61] 行处理 [/jsp/include/actionError.jsp] 时发生异常 58: 59: 60: org.apache.jasper.JasperException:在第 [61] 行处理 [/jsp/include/actionError.jsp] 时发生异常 58: 59: 60: 61: 62: 我正在尝试从 2.5.33 升级到 struts 6.3.0.2,当我尝试运行我的应用程序时,会发生此错误。您能否告诉我第 61 行错误的原因是什么? 第 61 行可以进行哪些更改? 附加信息: 原因:模板“strutsTemplates/actionmessage.ftl”第3行第46列语法错误: 当使用标记输出格式 (HTML) 启用自动转义时,不允许使用 ?html(传统转义),以避免双重转义错误。 文件:FMParser.java class="${parameters.cssClass?html}"<#rt/> 升级到 Struts 6.x 后,Freemarker 也会升级。新的 Freemarker 版本默认使用 auto-escape。但您的旧模板仍然使用 ?html 来显示输出。 迁移指南建议您停止使用?html: 迁移到最新的 Freemarker(默认情况下启用自动转义)后,您应该停止在自定义标签和基于 freemarker 的页面中使用 ?html。

回答 1 投票 0

struts 升级后收到 bootstrap 主题错误消息

我最近将struts2从2.5.33升级到6.3.0.2,struts2jquery从4.0.1升级到5.0.2,升级后theme="bootstrap"不起作用,如果使用theme="bootstrap"就不行了

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.