Apache Struts Web框架是一个免费的开源解决方案,用于创建Java Web应用程序。
我使用的是Struts 1.3,我希望能够为不同的选项提供下拉菜单,如下所示: 以下示例具有以下格式: 单选按钮:下拉值 1 下拉值...
我有以下标签: 我有以下标签: <html:text styleClass="span2" property="groupManagerId" styleId="groupManagerId" maxlength="19" size="10" readonly="" /> 工作正常。当我添加 style 属性时: <html:text styleClass="span2" style="display:<%=(""+FVConstants.NORMAL).equalsIgnoreCase(groupData.getGroupType())?"none":" "%>;" property="groupManagerId" styleId="groupManagerId" maxlength="19" size="10" readonly="" /> 我收到以下错误: org.apache.jasper.JasperException: /pages/POS0085_group_modify.jsp(95,61) Unterminated <html:text tag 我在 label 和 div 标签下具有相同的属性,并且它可以正常工作。我改成 <%String displayValue=(""+FVConstants.NORMAL).equalsIgnoreCase(groupData.getGroupType())?"none":" "; String displayAttr="display:"+displayValue; %> 和 <html:text styleClass="span2" style="display:<%=displayValue%>" property="groupManagerId" styleId="groupManagerId" maxlength="19" size="10" readonly="" /> 并且它有效。第一次尝试有什么问题?有更好的方法吗? 当初学者尝试使用 ? 运算符计算字符串时,经常会发生此错误。计算的表达式应该像这样用括号括起来 <html:text styleClass="span2" style="display:<%=((""+FVConstants.NORMAL).equalsIgnoreCase(groupData.getGroupType())?"none":" ")%>;" property="groupManagerId" styleId="groupManagerId" maxlength="19" size="10" readonly="" />
我使用HTTP会话对象在signUpAction.java中存储登录的用户ID: HttpSession 会话 = request.getSession(); if(登录>0&&糖果>0){ 会议。
我使用HTTP会话对象在signUpAction.java中存储登录的用户ID: HttpSession 会话 = request.getSession(); if(登录>0&&糖果>0){ 会议。
我有一个dynaform ReservationForm,它是针对预订对象中的一个对象预订,有成员,每个成员中有计费信息对象。 在每个计费对象中...
为什么从 Struts 1 迁移到 Struts 2 + Tiles 3 后网页上显示的字体变大了?
我正在研究Struts 1到2的迁移应用程序。我也成功迁移了 JSP、Actions、POJO 和 XML。 但是,当我将 Tiles 3 集成到我的 Struts 2 应用程序中时,突然,它出现了......
为什么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; }