Apache Struts Web框架是一个免费的开源解决方案,用于创建Java Web应用程序。
为什么Struts中的ActionSupport是一个类而不是一个接口?
接口为 Java 开发人员提供了比具体类更大的灵活性。我是 Struts 2 框架的新手,我对 Struts 2 开发人员决定将 ActionSupport 设为 cl 感到困惑...
如何构建带有异常详细信息和发送邮件按钮的 Struts 自定义错误页面?
我目前正在处理 Struts 中的错误(404、500),因此任何遇到错误的用户都会看到一个包含所有详细信息的方便的错误页面。我还想实现一个 sendmail 功能...
Struts 2 中替换 Struts 1 DispatchAction.types
我正在尝试寻找 Struts 2 中 org.apache.struts.actions.DispatchAction.types 的替代品。 下面是一个代码片段: if(类型!= null) { if(types.length ==forward.length) {
将 Struts 应用程序从 JBoss 服务器 4.3 迁移到 7.1
我有一个 Struts Web 应用程序,我想将其从 JBoss 服务器 4.3 迁移到 JBoss 7.1。 谁能告诉我在将应用程序迁移到新版本时需要考虑哪些事情,例如
我想删除所有由选择的行,但我不知道该怎么做。 另外,我不知道 的 name 属性,是吗
我遇到了显示包含 2750 行的 ArrayList 的问题。斯特拉 显示行的uts代码是: 我遇到了显示 2750 行的 ArrayList 的问题。斯特拉 显示行的 uts 代码是: <c:forEach items="${customerlist}" var="beneficiaryListval"varStatus="ForIndex" > <tr id="<c:out value="${beneficiaryListval.customerId}" />"> <td><c:out value="${beneficiaryListval.fullName}" /></td> <td><c:out value="${beneficiaryListval.mobileNo}" /></td> <td><c:out value="${beneficiaryListval.passportNo}" /></td> <td><c:out value="${beneficiaryListval.beneficiaryCount}" /></td> </tr> <%rowID++;%> </c:forEach> 其操作方法是: public ActionForward load(ActionMapping actionMapping,ActionForm actionForm,HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { try { mtmrsLogger.entering("BeneficiaryAction", "load"); BeneficiaryForm beneficiaryForm = (BeneficiaryForm) actionForm; ArrayList customerlist = customerManager.getCustomerForBeneficiaryWithCount(); httpServletRequest.setAttribute("customerlist", customerlist); beneficiaryForm.setPageStatus("CustomerGrid"); return actionMapping.findForward(Constants.getInstance().SUCCESS); } 现在,我需要打破 ArrayList customerlist 并将它们以 50 个块的形式发送到 JSP 并显示,或者在 JSP 中显示它们,这样渲染时不会很慢。 不建议在List中存储 2750 条记录。当您从数据库/存储读取它以及在 Web/应用服务器上传递它时,请考虑它的含义。此外,您可能不需要一次性使用所有这些。 请考虑一次以 100 个等块的形式获取和显示数据。您始终可以通过传递索引对服务器进行新的调用以获取下一组记录。 如果您不使用 still,则必须使用 Ajax;这样您就可以继续将剩余数据附加到页面而无需刷新。 我建议使用分页机制,以便您在给定时间加载 50 或 100 条记录。看看这个extremetable Struts <logic:iterate> 标签具有 offset 和 length 属性,可用于显示集合的各个部分。下面将显示 ArrayList 中的前 50 个元素。 <logic:iterate name="customerlist" id="customer" indexId="customerNum" offset="0" length="50"> <tr id="${customer.customerId}"> <td>${customer.fullName}</td> ... </tr> </logic:iterate> 您不应该破坏列表customerlist来“分块发送到jsp”。相反,您可以破坏将返回给定数量记录的方法,即 customerManager.getCustomerForBeneficiaryWithCount(perPage); 或使用 JSP 逻辑标记使用两个参数 firstRow 和 perPage 来限制渲染行。
如何修复或处理部署在 Apache Tomcat 7 中的 Java Struts 1.3 应用程序中的 File Reaper 线程内存泄漏问题?
我已在 Apache Tomcat 7.0.41 中部署了一个 Struts 1.3 Web 应用程序。 Tomcat服务器似乎经常挂起并且无法处理任何请求,在浏览器上显示页面未找到错误,重新...
在Struts 2中为一个JSP上的两个表单配置不同的Action类
我有一个 JSP 页面,其中有两个带有提交按钮的表单。如何为这两种表单配置不同的操作类? 例如: form1提交按钮配置到classA 和 form2 提交
lodable.jsp: 节目名称: lodable.jsp: <html:form action="DemoS" method="POST" focus="" > Program Name : <html:select property="airline_name" styleId = "tempId" onchange="onAirlineChange()" > <html:options collection="airline_name" property="value" labelProperty="key" /> </html:select> <br/> PART NUMBER <input type="text" name="part_no"id="part_number"> YEAR <select name="year" id="year" style="width:200px"> <option value="13">2013</option> <option value="14">2014</option> <option value="15">2015</option> </select> <input type="submit" name="Lodable" value ="OK"> </html:form> <html:errors/> DemoForm.java: public class DemoForm extends ValidatorForm{ private String airline_name; private String part_no; private String year; public String getAirline_name() { return airline_name; } public void setAirline_name(String airline_name) { this.airline_name = airline_name; } public String getPre_part_no() { return pre_part_no; } public void setPre_part_no(String pre_part_no) { this.pre_part_no = pre_part_no; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } @Override public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors=new ActionErrors(); if(getPart_no()==null ||getPart_no().length()<1) { errors.add("part_no",new ActionMessage("errors.required","part_no")); } if(getYear()==null ||getYear().length()<1) { errors.add("Year",new ActionMessage("errors.required","Year")); } } } Struts-config.xml摘录: <form-beans> <form-bean name="DemoForm" type="com.me.form.DemoForm" scope="session" /> <form-beans/> <action-mappings> <action input="/pages/Lodable.jsp" parameter="method" name="DemoForm" path="/DemoS" scope="session" type="com.woi.action.DemoS" validate="true"> <forward name="lodable" path="/pages/Lodable.jsp" /> <forward name="save" path="/pages/success.jsp"></forward> <forward name="fail" path="/pages/fail.jsp"></forward> </action> <action-mappings/> 收藏: public Map<String,String> airline_name= new HashMap<String,String>(); airline_name.put("niraj.deshmukh","template1 "); airline_name.put("user1","template1 "); airline_name.put("user2","template2 "); airline_name.put("user3","template3 "); request.setAttribute("airline_name", airline_name); 例外: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean under name airline_name org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1083) org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:295) org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1027) org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:374) org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:995) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:198) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 您没有正确指定操作的路径,应该是 <html:form action="/DemoS" 检查您是否为 formBean 类或 actionclass 创建了构造函数。如果您创建了构造函数,jspcompler 会给出如下错误:javax.servlet.jsp.JspException:创建类 ProductFB 的 bean 时出现异常。 之前我没有提到索引页面导航到的页面的正确路径,我使用了jsp:forward标签 下面是我之前使用过的标签 <jsp:forward page="/faces/views/prime.xhtml"></jsp:forward> 我把它改为c:redirect <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Index</title> </head> <body> <c:redirect url="/views/prime.xhtml"></c:redirect> </body> </html> 问题解决了。
如何在Struts 2中实现相当于<html:cancel>标签的功能?
我正在将应用程序从 Struts 1 迁移到 Struts 2。 在 Struts 1 中,我们有 标签可以在单击时绕过表单 bean 的 validate() 方法。 但在 Struts 2 中,我不知道有任何
如何在 Struts 2 中实现 HTML:cancel 的等效功能?
我正在将应用程序从 Struts 1 迁移到 Struts 2。 在 Struts 1 中,我们有 标签可以在单击时绕过表单 bean 的 validate() 方法。 但在 Struts 2 中,我不知道有任何
我正在尝试让 Struts 教程正常工作,但当我尝试在 Tomcat 中运行该文件时遇到以下错误。 请求的资源 () 不可用。 Tomcat日志输出: 八月...
javax.servlet.UnavailableException:解析错误处理资源路径jndi:/server/Project_Name/WEB-INF/struts-config.xml
我有一个由 JDeveloper 编写的开源项目,我想在 Netbeans 上运行该项目。 在 struts-config.xml 中有下一个操作: 我有一个由 JDeveloper 编写的开源项目,我想在 Netbeans 上运行该项目。 在struts-config.xml有下一个动作: <action path="/createFolderLoad" type="oracle.adf.controller.v2.struts.actions.DataAction" name="createFolderForm" unknown="false" className="oracle.adf.controller.v2.struts.actions.DataActionMapping"> <set-property property="v1ActionClass" value="com.ccs.dms.folder.action.CreateFolderLoadAction"/> <forward name="success" path="/jsp/folder/CreateFolder.jsp" /> </action> 当我运行这个应用程序时,输出是: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: javax.servlet.UnavailableException: Parsing error processing resource path jndi:/server/Project_Name/WEB-INF/struts-config.xml. 当我删除此操作时,它运行时没有任何错误。 如何处理 Netbeans 中的 oracle.adf.controller?! 解析struts-config.xml文件时发生异常。该资源不应该是 JNDI 资源,它应该是相对于 Web 根目录的文件资源。配置 Web 应用程序的示例 <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value> /WEB-INF/struts-config.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
我在 Struts 1 表单上有一些单选按钮: 我在 Struts 1 表单上有一些单选按钮: <input type="radio" name="productId" value="31415" /> <input type="radio" name="productId" value="31416" /> 然后在 Action 类中我可以很好地从表单中获取值。例如,如果我选择第一个单选按钮,则 myForm.getProductId() 返回 31415。 问题: Struts 1 中是否有一种方法可以告诉通过索引选择哪个输入字段,同时保留当前功能? (在最坏的情况下我知道我可以创建一个新的隐藏字段,其中包含所选的单选按钮并从 JavaScript 更新该字段,但我也想避免这种方式。) 说明: 单选按钮是基于集合创建的,但由于某种原因,集合的元素有时没有产品 ID,因此如果有多个这样的元素,那么我无法判断选择了哪个单选按钮。但我想知道即使在这些情况下,如何提高系统的容错能力。 (我对集合中的元素没有权力,它们来自网络服务。) 您可以使用索引属性作为输入字段的索引名称。 对于索引属性,BeanUtils.populate() 使用请求参数的名称来确定调用正确的 setter 方法 ActionForm 使用索引名称 <input type="radio" name="productId[0]" value="31415" /> <input type="radio" name="productId[1]" value="31416" /> 定义索引属性 private String[] productId; public String getProductId(int index) { return productId[index]; } public void setProductId(int index, String productId) { productId[index] = productId; } public String[] getProductId( ) { return productId; }
ActionValidatorManager接口方法validate中action上下文的含义
我想使用以下方法通过客户端的 XML 进行验证。 有人可以告诉我以下方法中所述的操作的上下文吗: 接口 ActionValidatorM...
以前缀“logic”导入的标签库中没有定义标签“iterator”
错误:javax.servlet.ServletException:org.apache.jasper.JasperException:/ArrayList.jsp(9,2)在使用前缀“logic”导入的标签库中没有定义标签“iterator” org.apache.
如何在Struts 1中同时使用validate()和validation.xml?
我正在使用Struts 1.x 的验证框架,并在validation.xml 中声明了一些验证规则。 我需要一些更复杂的验证,所以我还重写了其中的 validate() 方法...
我有一个基于Java/Struts/Hibernate的应用程序。它有两种类型的用户:管理员和普通用户。我为角色和操作创建了单独的 Struts 页面。 但是当我在...
我有一个 URL=“deliverable.do?id=123” 单击提交按钮后,它会转到 validate() 方法并找到一些缺失的字段。 然后,当它返回显示问题时(这是......
java.lang.NullPointerException
我在 web.xml 部署描述符中添加了一个过滤器。但是每当请求到达服务器时,过滤器就会抛出 NullPointerException: java.lang.NullPointerException org.apache.commons.