struts-1 相关问题

Apache Struts Web框架是一个免费的开源解决方案,用于创建Java Web应用程序。 Struts框架旨在帮助开发人员创建利用MVC架构的Web应用程序。

为什么Struts 1中包含一个页面时JSP会执行多次?

我尝试在 Struts 1 中运行以下代码并收到错误: <%@page contentType="text/html" pageEncoding="UTF-8"%> 我尝试在 Struts 1 中运行以下代码并收到错误: <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <jsp:include page="/Shop_login.jsp"></jsp:include> <head>Welcome To My shop application </head> <body> User Name:<html:input text="first_name"> </html:input> Password:<html:password text="password"> </html:password> </body> </html> 输出为: Welcome To My shop application User Name: Password: Welcome To My shop application User Name: Password: Welcome To My shop application User Name: Password: Welcome To My shop application User Name: Password: ... 如果您使用 JSTL,您也可以在 JSP 中拥有这些标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %> <%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %> <%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %> 文件中没有更多内容,只有这些代码片段 然后使用 <%@ include file="/tags/taglibs.jsp" %> 在页面顶部,您可以使用定义下方的标签。 例如,您可以将其他 JSP 片段包含在 JSTL 中 <c:import url="/pages/page.jsp"/> 或使用 JSP 指令 <jsp:include page="/pages/page.jsp"/> 并且不要在其内部使用相同的片段,它可能会导致从代码编译的 servlet 中出现递归调用。

回答 1 投票 0

使用 <c:forEach> 填充 Struts 1 中 <html:select> 标签的选项

我正在尝试使用 标签在 标签中循环。 我正在尝试使用 <c:forEach> 标签在 <html:select> 标签中循环。 <html:select property="year" > <s:iterator var="i" begin="${1}" end="${monthlyChargeForm.currentYear - 2000}" > <s:set var="counter" value="${monthlyChargeForm.currentYear}"/> <html:option value="${counter}"> <c:out value="${counter}"/> </html:option> <s:set var="counter" value="${counter-1}"/> </s:iterator> </html:select> 我正在尝试在下拉列表中列出从当年到 YEAR : 2000 的所有年份。 但我得到的下拉列表是空的。 我使用过的Action类代码: // monthlyChargeForm.setCurrentYear(now.get(Calendar.YEAR) ); 获取当前年份。 public class MonthlyChargeAction extends Action { private ActionMessages messages; public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { ServletContext context = getServlet().getServletContext(); BACUtils bacUtils = new BACUtils(); String sessionStatus = HtmlBean.isSessionOut(request.getSession(false), context); if(!Constants.SUCCESS_STATUS.equals(sessionStatus)) { return mapping.findForward("sessionOut"); } String accesssStatus = HtmlBean.isSessionValid(request.getSession(false), context, Properties.ACCESS_PROFILE[8][0]); if(!Constants.SUCCESS_STATUS.equals(accesssStatus)) { return mapping.findForward("sessionOut"); } MonthlyChargeForm monthlyChargeForm = (MonthlyChargeForm)form; Reports reports = new Reports(); String sUser =(String) request.getSession().getAttribute("USERID"); String returnVal = ""; int i = 0; try { monthlyChargeForm.setFromDate(bacUtils.getDate()); monthlyChargeForm.setToDate(bacUtils.getDate()); Calendar now = Calendar.getInstance(); String fromDate = monthlyChargeForm.getFromDate(); String toDate = monthlyChargeForm.getToDate(); String curentDate = bacUtils.getDate(); monthlyChargeForm.setCurrentYear(now.get(Calendar.YEAR) ); System.out.println("Current Year :::::::::" + monthlyChargeForm.getCurrentYear()); AuditTrial.insertLog(5,sUser,null,"General Reports Module Loaded Successfully",(String) request.getSession().getAttribute("OPER_TYPE"),"S",request.getRemoteAddr(),context); if(monthlyChargeForm.getPageIndex() == null || monthlyChargeForm.getPageIndex().trim().length() == 0) monthlyChargeForm.setPageIndex(Integer.toString(BACUtils.getIntVal( monthlyChargeForm.getPageIndex()))); if(monthlyChargeForm.getMonth()!=null && monthlyChargeForm.getYear()!=null ) { monthlyChargeForm.setMonthlyChargeReport( reports.getMonthlyChargeData(monthlyChargeForm, 10, context)); } } catch (Exception e) { e.printStackTrace(); } System.out.println(Constants.SUCCESS_MAPPING); return mapping.findForward(Constants.SUCCESS_MAPPING); } 如果您尝试使用 foreach 循环,那么您可以尝试 JSTL 核心标签库中的 forEach 标签。 <%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html:select property="year" > <c:forEach varStatus="i" begin="${monthlyChargeForm.currentYear}" end="2000" step="-1"> <html:option value="${i.index}"> <c:out value="${i.index}"/> </html:option> </c:forEach> </html:select>

回答 1 投票 0

如何防止在 Struts 1 中刷新时重新提交表单? [重复]

我已经浏览了同样问题的答案,但是Struts中没有任何默认方法来防止重新提交吗?另外,就我而言,如果我重置表单字段,它仍然会保存旧值......

回答 2 投票 0

如何在Struts 2中替换Struts 1 <nested:root>标签?

我正在将 Struts 1 应用程序转换为 Struts 2。我有一个包含多个 JSP 的 JSP。这包括 JSP 上都带有 标签。 我在...

回答 1 投票 0

form bean 采用更新后的值,但在 JSP 中它在 Struts 1 中保留旧数据

我在 Struts 1 中有一个操作,它使用输入数据和对象的选择选项转发到 JSP。我希望,当我更改选择选项时,同一 JSP 中的日期也会更改。我跟随...

回答 1 投票 0

调试显示已更新 formBean,但 Struts 1 中 JSP 未更新

我在 Struts 1 中有一个操作,它使用输入数据和对象的选择选项转发到 JSP。我希望,当我更改选择选项时,同一 JSP 中的日期也会更改。我跟随...

回答 1 投票 0

Struts 1 中取消选中复选框时,<html:checkbox> 标签提交什么值?

我遇到了这种情况。 类 MyForm 扩展 IdSelectionForm { 私人布尔批准It = true; …… } 我的 JSTL 表格包括 我遇到了这种情况。 class MyForm extends IdSelectionForm { private Boolean approveIt = true; ..... } 我的 JSTL 表格包括 <html:checkbox property="approveIt" styleId="style1" value="true"/> 当我选择复选框并提交它时,在 Struts 操作中我得到为此字段设置的 true 值。 当我取消选中它并提交时,再次。然后我也得到true value。我想知道它是否具有默认值。当我取消选中时,它应该被 false 覆盖吗? 首先,<html:checkbox>是Struts标签而不是JSTL标签。该标签只是生成一个复选框类型的标准 HTML 输入。 HTML 复选框在选中时将其值作为参数值发送,而在未选中时不发送任何参数。 因此,由于表单字段的默认值为 true: 如果选中该复选框,Struts 会将其设置为 true 如果未选中该复选框,Struts 不会将其设置为任何内容,因此将保留其默认值:true approveIt属性的默认值应该是 false。这样,如果未选中该复选框,它将保留其默认值 (false),这是正确的。如果选中该复选框,它将被设置为 true,这也是正确的。 我也遇到了同样的问题。 即使布尔变量初始化为 false 后问题仍然存在。 问题是我的范围是session。 将范围更改为 request 后,一切都会按预期进行。 value 属性包含标签使用的值,并且与 checkbox 状态无关(如果它是 checked 或未选中)。 提交时,只有选中的复选框才会通过。然后 Struts 捕获它们并按名称设置相应的 bean 属性。 如果您在内联或构造函数中预初始化值,则只有 checked 复选框将通过设置 bean 属性值进行更新。您无法更新未选中的状态。 因此,在填充表单之前不要设置任何值。如果未设置该值,则 Struts 会将该值视为 false 并从标签中删除 checked。这与显式将值设置为 false 等效。 与值 true 相反的行为,但复选框没有其他值的状态,如 null 而不是 true 或 false 对应于复选框 checked 或未选中状态(没有 checked)属性)。

回答 3 投票 0

如何处理 Struts 1 验证错误?

我在中定义了以下内容 struts-config.xml: 我在中定义了以下内容 struts-config.xml: <struts-config> <form-beans> <form-bean name="LoginForm" type="com.actionform.LoginForm"/> </form-beans> <action-mappings> <!-- action for login --> <action input="/views/login.jsp" name="LoginForm" path="/Login" scope="session" type="com.actions.LoginAction" parameter="method" validate="true"> <forward name="success" path="/views/Frameset.html" /> </action> </action-mappings> <message-resources parameter="/WEB-INF/ApplicationResources"/> <!-- ========================= Validator plugin ================================= --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> </struts-config> 登录表单: public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if (userName == null || userName.length() < 1) { System.out.println("in validate ---"); errors.add("userName", new ActionMessage("error.userName.required")); // TODO: add 'error.name.required' key to your resources } if (password == null || password.length() < 1) { errors.add("password", new ActionMessage("error.password.required")); // TODO: add 'error.name.required' key to your resources } return errors; } login.jsp: <html:form action="/Login?method=loginUser"> <html:errors/> <html:text name="LoginForm" property="userName" /> <html:messages id="err_userName" property="userName"> <bean:write name="err_userName" /> </html:messages> </html:form> 房产档案: error.userName.required = User Name is required. error.password.required = Password is required. 我哪里做错了?我收到以下错误 javax.servlet.jsp.JspException:无法在任何范围内找到 bean 错误 我只想在同一个JSP中显示错误。 获得包含要在输入页面中显示的消息或错误的 ActionMessages/ActionErrors 对象(使用 <html:messages> 标签或 <html:errors> 标签)后,您必须从您的应用程序调用以下方法之一: Action 对象将验证结果放入范围内: addMessages(HttpServletRequest request, ActionMessages messages) 或 addErrors(HttpServletRequest request, ActionMessages errors) 你在这样做吗? 我真的不关心struts如何处理异常。通常在覆盖 RequestProcesor 时使用 1.2 中的旧原始代码,我可能应该替换这两种方法 - process 和 processException。第一件事是在 processValidation 发出后捕获请求中的异常。代码片段可能看起来像 Exception exception = null; if (needValidation) try { if (! processValidate(request, response, form, mapping)) { return; } exception = (Exception)request.getAttribute(Globals.EXCEPTION_KEY); } catch (InvalidCancelException ex) { exception = ex; } ActionForward forward; // Check out if exception occurred if (exception != null){ forward = processException(request, response, exception, form, mapping); 如果您已经配置了错误转发,那么第二个就非常简单了。错误转发通常是从映射中容易找到的全局转发之一。一旦找到,它就会在页面上显示您的错误消息。我认为这些可能足以处理异常 exception.printStackTrace(); log.error(exception); request.setAttribute("error", exception.getMessage()); return mapping.findForward("error"); 它已经完成,因为 ActionForm 或 ValidatorForm 的验证方法不会引发任何异常,并且我无法在不引发异常的情况下正确重写此方法。一旦扔了,谁会在乎?!

回答 2 投票 0

无法在名称段下找到bean

我现在正在使用 JSP,但我的 bean 有一些问题。 我有这样的消息: javax.servlet.jsp.JspException:无法在名称段下找到 bean 支柱配置: 我现在正在使用 JSP,但我在使用 Bean 时遇到了一些问题。 我有这样的消息: javax.servlet.jsp.JspException:无法在名称段下找到 bean Struts 配置: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts-config SYSTEM "dtds/struts-config_1_3.dtd"> <struts-config> <form-beans> <form-bean name="loginForm" type="com.un23.security.filters.LoginForm"/> <form-bean name="codeForm" type="com.alodiga.sisac.plans.action.code.CodeForm"/> <form-bean name="costListForm" type="com.alodiga.sisac.plans.action.costList.CostListForm" /> <form-bean name="didRentForm" type="com.alodiga.sisac.plans.action.didRent.DidRentForm"/> <form-bean name="discountForm" type="com.alodiga.sisac.plans.action.discount.DiscountForm"/> <form-bean name="dnForm" type="com.alodiga.sisac.plans.action.dn.DnForm"/> <form-bean name="favoriteCountryForm" type="com.alodiga.sisac.plans.action.favoriteCountry.FavoriteCountryForm"/> <form-bean name="importCostListForm" type="com.alodiga.sisac.plans.action.costList.ImportCostListForm" /> <form-bean name="importDidForm" type="com.sg123.actions.did.ImportDidForm"/> <form-bean name="importDidRentForm" type="com.alodiga.sisac.plans.action.didRent.ImportDidRentForm"/> <form-bean name="importDnForm" type="com.alodiga.sisac.plans.action.dn.ImportDnForm"/> <form-bean name="importEquipmentInstanceForm" type="com.sg123.actions.equipmentInstance.ImportEquipmentInstanceForm"/> <form-bean name="importFavoriteCountryForm" type="com.alodiga.sisac.plans.action.favoriteCountry.ImportFavoriteCountryForm"/> <form-bean name="importTerminationPriceListForm" type="com.alodiga.sisac.plans.action.terminationPriceList.ImportTerminationPriceListForm" /> <form-bean name="importOriginationPriceListForm" type="com.alodiga.sisac.plans.action.originationPriceList.ImportOriginationPriceListForm" /> <form-bean name="originationPriceListForm" type="com.alodiga.sisac.plans.action.originationPriceList.OriginationPriceListForm" /> <form-bean name="planForm" type="com.alodiga.sisac.plans.action.plan.PlanForm" /> <form-bean name="priceListId" type="com.alodiga.sisac.plans.action.originationPriceListAction.priceListId" /> <form-bean name="promotionForm" type="com.alodiga.sisac.plans.action.promotion.PromotionForm"/> <form-bean name="terminationPriceListForm" type="com.alodiga.sisac.plans.action.terminationPriceList.TerminationPriceListForm" /> <form-bean name="terminationPriceForm" type="com.alodiga.sisac.plans.action.terminationPriceList.TerminationPriceForm" /> <form-bean name="scheduleForm" type="com.alodiga.sisac.plans.action.schedule.ScheduleForm"/> <form-bean name="serviceEquipmentModelForm" type="com.alodiga.sisac.plans.action.serviceEquipmentModel.ServiceEquipmentModelForm"/> <form-bean name="serviceRentForm" type="com.alodiga.sisac.plans.action.serviceRent.ServiceRentForm"/> <form-bean name="enterprises" type="com.alodiga.sisac.plans.action.didRent.ListDidRent"/> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> <forward name="welcome" path="/Welcome.do"/> <!-- Linea agregada por el enterprises --> <forward name="enterprises" path="/ListDidRent.do"/> </global-forwards> <action-mappings> <action path="/Login" type="com.un23.security.filters.Authenticator" name="loginForm" validate="true" input="/login.jsp" > <forward name="success" path="/welcome.jsp" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> </action> <action path="/Welcome" forward="/welcome.jsp"/> <action path="/*/List*" type="com.alodiga.sisac.plans.action.{1}.List{2}Action" name="{1}Form" scope="request" input="/WEB-INF/pages/{1}/list{2}.jsp"> <forward name="success" path="/WEB-INF/pages/{1}/list{2}.jsp" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> </action> <action path="/*/Add*" type="com.alodiga.sisac.plans.action.{1}.Add{2}Action"> <forward name="success" path="/WEB-INF/pages/{1}/add{2}.jsp" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> </action> <action path="/*/View*" type="com.alodiga.sisac.plans.action.{1}.View{2}Action"> <forward name="success" path="/WEB-INF/pages/{1}/view{2}.jsp" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> </action> <action path="/*/Export*" type="com.alodiga.sisac.plans.action.{1}.Export{2}Action" name="listForm" scope="request" input="/WEB-INF/pages/{1}/export{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/{1}/List{2}.do" /> </action> <action path="/*/Import*" type="com.alodiga.sisac.plans.action.{1}.Import{2}Action"> <forward name="success" path="/WEB-INF/pages/{1}/import{2}.jsp" /> <forward name="error" path="/WEB-INF/pages/{1}/import{2}.jsp" /> </action> <action path="/*/Edit*" type="com.alodiga.sisac.plans.action.{1}.Edit{2}Action"> <forward name="success" path="/WEB-INF/pages/{1}/edit{2}.jsp" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> <forward name="error2" path="/{1}/List{2}.do" /> </action> <action path="/*/SaveAdd*" type="com.alodiga.sisac.plans.action.{1}.Save{2}Action" name="{1}Form" scope="session" input="/WEB-INF/pages/{1}/add{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> <forward name="error2" path="/{1}/Add{2}.do" /> <forward name="jsp" path="/WEB-INF/pages/{1}/add{2}.jsp" /> <forward name="jspEdit" path="/WEB-INF/pages/{1}/edit{2}.jsp" /> <forward name="edit" path="/{1}/Edit{2}.do" /> </action> <action path="/*/SaveEdit*" type="com.alodiga.sisac.plans.action.{1}.Save{2}Action" name="{1}Form" scope="session" input="/WEB-INF/pages/{1}/edit{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> <forward name="edit" path="/{1}/Edit{2}.do" /> </action> <action path="/*/SaveImport*" type="com.alodiga.sisac.plans.action.{1}.SaveImport{2}Action" name="import{2}Form" scope="session" input="/WEB-INF/pages/{1}/edit{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/WEB-INF/pages/{1}/import{2}.jsp" /> <forward name="fail" path="/{1}/Import{2}.do" /> </action> <action path="/*/Finalize*" type="com.alodiga.sisac.plans.action.{1}.Finalize{2}Action" scope="session" input="/WEB-INF/pages/{1}/list{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/WEB-INF/pages/general/generalError.jsp" /> </action> <action path="/*/Delete*" type="com.alodiga.sisac.plans.actions.{1}.Batch{2}Action" name="listForm" scope="request" input="/WEB-INF/pages/{1}/list{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/{1}/List{2}.do" /> </action> <action path="/*/Enable*" type="com.alodiga.sisac.plans.action.{1}.Batch{2}Action" name="listForm" scope="request" input="/WEB-INF/pages/{1}/list{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/{1}/List{2}.do" /> </action> <action path="/*/Disable*" type="com.alodiga.sisac.plans.action.{1}.Batch{2}Action" name="listForm" scope="request" input="/WEB-INF/pages/{1}/list{2}.jsp"> <forward name="success" path="/{1}/List{2}.do" /> <forward name="error" path="/{1}/List{2}.do" /> </action> <action path="/reloadCache/ReloadCache" type="com.alodiga.sisac.plans.action.reloadCache.ReloadCacheAction" scope="request" input="/WEB-INF/pages/reloadCache/reloadCache.jsp"> <forward name="success" path="/WEB-INF/pages/reloadCache/reloadCache.jsp" /> <forward name="error" path="/WEB-INF/pages/reloadCache/reloadCache.jsp" /> </action> <action name="planForm" path="/*/ChangePlanAsDefault" scope="request" type="com.alodiga.sisac.plans.action.plan.ChangePlanAsDefaultAction"> <forward name="success" path="/plan/ListPlan.do" /> <forward name="error" path="/plan/ListPlan.do" /> </action> </action-mappings> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> <message-resources parameter=""/> <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> </plug-in> <!-- ========================= Validator plugin ================================= --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> </struts-config> 我的JSP: <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://displaytag.sf.net" prefix="display"%> <tiles:insert page="/WEB-INF/layouts/rightLayout.jsp"> <tiles:put name="html-headers" type="String"> <script type="text/javascript" src="<%= request.getContextPath()%>/js/ajax/utilsPlan.js"></script> </tiles:put> <tiles:put name="body" type="String"> <div id="contenido"> <div class="ruta"> <p><a target="_parent" href="<%= request.getContextPath()%>/Welcome.do">Módulo de Planes</a> &gt; Números de Acceso</p> </div> <p>&nbsp;</p> <table width="31%" border="0" cellpadding="0" cellspacing="1" class="tbltitcat"> <tr> <td width="40%" class="tdtitcat">Números de Acceso</td> </tr> </table> <logic:present name="errorMsgs"><div class="menserror"><bean:write name="errorMsgs" /></div></logic:present> <logic:present name="successMsgs"><div class="mensexito"><bean:write name="successMsgs" /></div></logic:present> <logic:present name="infoMsgs"><div class="mensinfo"><bean:write name="infoMsgs" /></div></logic:present> <html:form action="/dn/SaveImportDn" styleId="dnForm" method="POST" enctype="multipart/form-data"> <table width="100%" border="0" cellspacing="1" cellpadding="0"> <tr> <td class="tdtit">Empresa</td> <td> <html:select styleId="enterpriseId" property="enterpriseId" styleClass="inputcampotxt" onchange="showSegments();"> <html:options collection="enterprises" property="id" labelProperty="name" /> </html:select> </td> </tr> <tr> <td width="30%" class="tdtit">Segmento</td> <td> <div id="segmentsDiv"> <html:select styleId="segmentId" property="segmentId" styleClass="inputcampotxt" onchange="showServicesBySegment();"> <html:options collection="segments" property="id" labelProperty="name"/> </html:select> </div> <span class="menstxterror"><html:errors property="segmentId" /></span> </td> </tr> <tr> <td class="tdtit">Servicio</td> <td> <div id="servicesDiv"> <html:select styleId="serviceId" property="serviceId" styleClass="inputcampotxt"> <html:options collection="services" property="id" labelProperty="name"/> </html:select> </div> </td> </tr> <tr> <td width="30%" class="tdtit">Archivo Excel *</td> <td><html:file property="xlsFile" styleClass="inputcampotxt" size="40" /></td> </tr> <tr> <td colspan="2"> <input name="segments" type="submit" class="button" alt="boton" value="Aceptar"/></td> </tr> </table> </html:form> </div> <div class="contenidofin">&nbsp;</div> </tiles:put> </tiles:insert> 在 JSP 页面的任何范围内都找不到 segments 的值。这可能是因为您在从操作返回此 JSP 之前忘记初始化该值,或者您直接访问 JSP,或者您遇到验证错误并将此 JSP 配置为 input。在最后一种情况下,您应该在表单的 validate() 方法中初始化集合。 还有另一种方式通过 html:select 为 html:optionsCollection 提供选项。 <html:optionsCollection property="segments" label="name" value="id" />

回答 1 投票 0

如何在 Struts 1 中更改不同语言环境的 MessageResources 属性?

我有一个网络应用程序。为了实现多语言目的,我将 Java Struts 1.3 与 MessageResources 结合使用。默认语言是意大利语(MessageResources.properties),第二语言是英语(

回答 2 投票 0

如何在 Struts 1 中使用 Tomcat 进行基于表单的身份验证?

我需要在 Struts 1.3.10 + Tomcat 中进行基于表单的身份验证。 根据我的理解,一旦提交登录凭据,容器将与 tomcat-users.xml 交叉检查凭据,并且

回答 1 投票 0

<bean:message> 标签

我正在尝试使用 bean 来显示预定义消息,我已经创建了以下文件,但是当我输入 时,它遇到了以下错误 我正在尝试使用 bean 来显示预定义消息,我创建了以下文件,但是当我输入 <me 时,它遇到以下错误,自动代码生成器不显示 <message - resources> 标签! org.apache.jasper.JasperException:找不到 Struts 调度程序。 这通常是由于使用 Struts 标签而没有关联的过滤器造成的。 Struts 标签仅在请求通过其 servlet 过滤器时才可用,该过滤器会初始化该标签所需的 Struts 调度程序。 - [未知位置] 注意: 异常的完整堆栈跟踪及其根本原因可在 GlassFish Server 开源版 3.1.2.2 日志中找到。 struts.xml <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts-config> <!-- Configuration for the default package. --> <message-resources parameter="com/myapp/struts/messages"/> <package name="default" extends="struts-default"> <result-types> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/> </result-types> <action name="register"> <result type="tiles">register</result> </action> </package> </struts-config> register.jsp: <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <div id="Header"> <bean:message key="welcome.loggedin"/> </div> messages.properties: # -- welcome -- welcome.loggedin=You are logged in. welcome.heading=Struts Applications in Netbeans! welcome.message=It's easy to create Struts applications with NetBeans. 我想问题出在我的 jar 文件上 commons-digester-1.8.1.jar commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-lang-2.1.jar commons-logging-1.1.jar displaytag-1.2.jar displaytag-export-poi-1.2.jar displaytag-portlet-1.2.jar freemarker-2.3.13.jar jdom-1.1.jar jstl-1.2.jar junit-3.8.1.jar ognl-2.6.11.jar pagertag.jar sqlite-jdbc-3.7.2.jar struts2-convention-plugin-2.1.6.jar struts2-core-2.1.6.jar struts2-dojo-plugin-2.1.2.jar struts2-tiles-plugin-2.1.6.jar tiles-api-2.1.2.jar tiles-compat-2.1.2.jar tiles-core-2.1.2.jar tiles-jsp-2.1.2.jar tiles-servlet-2.1.2.jar struts-taglib-1.3.10.jar xwork-2.1.2.jar <bean:message key=标签是一个Struts1标签,在Struts2中它被替换为<s:text name=。除非您没有足够的理由运行这两个框架,否则您不应该使用 Struts1 标签。 您正在 Struts 2 应用程序中使用 Struts 1 标签。不。 Struts 1 和 Struts 2 是两个完全不同的 Web 框架。 这里是关于 i18n 的 Struts2 文档页面。

回答 2 投票 0

如何通过Struts 2中的配置进行简单的重定向?

我已经在网上搜索了几个小时,但在 Struts 中找不到一个简单问题的答案。基本上,我在 Struts 1 中有以下操作,这是一个简单的转发,我想重现...

回答 1 投票 0

如何在 Struts 1 中使用带有 <html:select> 标签的选项集合?

以下 TreeMap 包含我传递的数据库中的所有值 MaptreeMap = new TreeMap(map); 迭代器mapIterator = mapSet.it...

回答 1 投票 0

如何在Struts 1中使用HTML链接传递多个参数?

我正在尝试使用 标签将多个参数传递给我的 Struts 操作类。 我有一个链接,它应该将两个参数从 JSP 页面传递到我的操作类。 如何实现...

回答 3 投票 0

有没有办法在Struts 1中的JSP页面上预填充多个表单?

有没有办法用Struts 预先填充多个表单并使它们可用于JSP 页面? 我正在构建一个页面,上面有两种不同的表单,需要预先填充自定义数据......

回答 2 投票 0

在 Struts 1 中的 JSP 页面上填充多个表单

有没有办法用Struts填充多个表单并使它们可用于JSP页面? 我正在构建一个页面,上面有两种不同的表单,需要预先填充的自定义数据...

回答 2 投票 0

在 Struts 1 中的 JSP 页面上填充多个表单

有没有办法用Struts填充多个表单并使它们可用于JSP页面? 我正在构建一个页面,上面有两种不同的表单,需要预先填充的自定义数据...

回答 2 投票 0

Struts FormFile 接口的 getFileName() 方法是否对文件名进行过滤?

Struts的FormFile接口的getFileName()方法是否对文件名进行过滤? 我的意思是,按照 Struts 上传文档,“操作中需要什么”部分。 如果...

回答 1 投票 0

如何使用Struts 1.3在JSP页面中创建Calender控件?

我正在使用 Struts 1.3 框架创建一个 Web 应用程序。谁能指导我如何在 JSP 中使用 Struts 1.3 创建 Calender 控件。

回答 3 投票 0

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