Apache Struts 2是一个基于servlet的可扩展框架,在其架构中实现了模型 - 视图 - 控制器(MVC)模式,用于创建企业级Java Web应用程序。
我在我的项目中使用Struts 2 + Hibernate。不过我对这个领域还比较陌生。我能够在 Java 代码中获取所需的值,但无法在 JSP 页面中获取它们。 这是我的结构...
无法使用 Struts 2 在 select 标签中动态添加值
这是一个非常简单的问题,但尚未找到解决方案。我可以在页面中打印不带 0 的值,但无法将这些值绑定到选项中的 标记。 我的代码是... 这是一个非常简单的问题,但尚未找到解决方案。我可以打印页面中没有 0 的值,但无法将值绑定到选项中的 <select> 标签。 我的代码是: ${sa.replace("0", "")} displays numbers without 0's 但是,带有值的选项不会显示在 UI 中: <option value="<s:property value="%{#sa}"/>" <s:if test="%{#sa == #sumAssured.toString()}"> selected="" </s:if> > <span class="eurosymbol formatAmount"> <span><s:property value="%{#sa.replace('0','')}"/></span> </span> </option> 要在 OGNL 中使用对象,该对象应该位于值堆栈中。您可以使用 attr 对象在其他范围内搜索。 <option value="<s:property value='%{#attr.sa}'/>" <s:if test="%{#attr.sa == #attr.sumAssured.toString()}"> selected="selected"</s:if>> <span class="eurosymbol formatAmount"><span><s:property value="%{#attr.sa.replace('0','')}"/></span></span> </option>
如何在 JavaScript 函数中使用 <s:property> 标签
在我的 Struts 2 应用程序中,我有一个 JavaScript 函数来执行 cancel()。此方法位于标头中,仅对我的返回 URL 执行 window.location 操作。由于我们从 Struts 版本进行了迁移...
如何在 JavaScript 函数中使用 s:property
在我的 Struts 2 应用程序中,我有一个 JavaScript 函数来执行 cancel()。此方法位于标头中,仅对我的返回 URL 执行 window.location 操作。由于我们从 Struts 版本进行了迁移...
如何从 Struts 2 下拉列表中的数据库以及列表中获取值
我的应用程序使用Struts 2框架,我的代码如下, /*设置服务类型的动态下拉列表*/ ShowSearch drop=new ShowSearch(); 服务=drop.serviceType(); setService(服务...
这是我在bean中设置值的代码。 Infobean infobean = new Infobean(); 会话会话 = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); 字符串查询=“S...
当我将 Struts 和 Dojo 的标签组合起来时,我遇到了问题: &user_name=dd">链接...
<s:select label="Select a Database" headerKey="-1" headerValue="Select database" list="#{'MySQL':'MySQL', 'Microsoft SQL Server':'Microsoft SQL Server', 'Oracle':'Oracle', 'PostgreSQL':'PostgreSQL'}" name="dbname" onchange="getSchemas(this.value)" /> <s:submit value="Submit" onclick="submitDB()" /> 这里我想删除onchange="getSchemas(this.value),我想在提交按钮上调用相同的函数,但是我怎样才能得到this.valueonclick="submitDB()? Struts JSP代码: <s:select label="Select a Database" headerKey="-1" headerValue="Select database" list="#{'MySQL':'MySQL', 'Microsoft SQL Server':'Microsoft SQL Server', 'Oracle':'Oracle', 'PostgreSQL':'PostgreSQL'}" name="dbname" id="databaseType" /> <s:submit value="Submit" onclick="submitDB()" /> javascript代码: function submitDB() { var dbname = document.getElementById("databaseType").value; } 您可以将 select 元素传递给函数 onclick="submitDB(this.form['dbname'])" 然后在函数中使用它来获取值 function submitDB(el) { val = el.options[el.selectedIndex].value; }
缺少在 Struts 2 中通过 jQuery 的 ajaxSubmit() 提交的文件
我有一个表单,我通过 jQuery 的 ajaxSubmit() 函数提交该表单。此表单包含一个文件控件,并且它已被提出为一个可能的故障点,如果选择该文件,则重新...
我想删除所有由选择的行,但我不知道该怎么做。 另外,我不知道 的 name 属性,是吗
错误org.apache.tiles.TilesException:找不到属性
我正在开发一个 Web 项目,我使用 Tiles 在一个 JSP 中包含多个 JSP。 我遇到了一个问题,出现 TilesIOException。 我有这个 JSP,名称为:mainpage.jsp,其中包含...
填充 Struts 2 <s:select> 下拉菜单并重定向到操作
我有一个带有表单的JSP文件。该表单包含一个选择下拉菜单: 我有一个带有表单的 JSP 文件。该表单包含一个选择下拉菜单: <s:select label="Make a selection" headerKey="-1" headerValue="Select Option" list="stuff" name="books" /> 现在,为了填充选择菜单,我创建了一个 Java 文件来执行此操作。我还创建了一个 SelectAction 来填充菜单并使表单的操作指向 SelectAction。 在我的 struts.xml 文件中,我对其进行了调整,使其包含用于填充选择菜单的操作,然后重定向到处理表单的操作: XML 文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="example" namespace="/example" extends="struts-default"> <action name="SelectAction" class="example.SelectAction"> <result type="redirectAction"> <param name="ActionName">AddSubmitAction</param> <param name="namespace">/example</param> </result> </action> <action name="AddSubmitAction" class="example.AddSubmittAction"> <result type="chain"> <result>/example/addOrder.jsp</result> </result> </action> </package> </struts> 我在 xml 文件中尝试做的是,首先拥有 SelectAction(因此选择菜单填充),然后将其重定向到 AddSubmitAction,它将处理表单输入。 但是,这不起作用。我收到调度程序未找到错误。我的做法不正确吗? redirectAction在这里被滥用了吗? 动作名称参数区分大小写 <param name="actionName">AddSubmitAction</param> 填充您选择的标签值的最佳方法是创建准备方法。当你的动作类被调用时,prepare 方法总是首先被调用。 因此,在您的一个 Action 类中创建准备方法: public void prepare(){ //set your list here } 您还可以为操作类中定义的每个方法定义准备方法: 如果你的方法是 public String execute(){ } 那么你的准备方法应该是 public void prepareExecute(){ 并在您的操作类中实现 Preparable 接口。 进一步阅读:准备拦截器
我正在发出 Content-Type 为 application/x-www-form-urlencoded 的 PUT 请求。我无法将表单正文元素映射到我的 ModelDriven 操作类用户。 这是一个示例请求: 放置:http:...
JSP 表达式在 JSTL 标签中工作,但在 Struts 2 标签中不起作用
我在我的项目中使用 JSTL 和 Struts 2。我尝试使用 JSTL 和 Struts 2 标记在范围内设置一个值,如下所示: ... 我在我的项目中使用 JSTL 和 Struts 2。我正在尝试使用 JSTL 和 Struts 2 标签在范围内设置一个值,如下所示: <div id="id1"></div> <div id="id2"></div> <% int b=10; %> <c:set var="test2" value="<%= b %>"/> <s:set var="test3" value=" <%=b%>" /> <script> document.getElementById("id1").innerHTML="${test2}"; //10 document.getElementById("id2").innerHTML="${test3}"; //nothing is displayed. </script> 输出仅为10。我的疑问是为什么表达式 <%= b %> 在 <c:set> 标签中有效,而在 <s:set> 标签中不起作用? Struts 标签不允许在标签属性中使用脚本。不过你可以试试 <s:set var="test3"><%=b%></s:set>
在 Struts 2 Action 类中访问 JSP 表单数据
我不明白如何访问 Action 类中 JSP 页面中的表单数据 登录.jsp: 我不明白如何访问我的Action类中的JSP页面中的表单数据 login.jsp: <div class="well"> <form id="loginForm" method="POST" action="hr/login/" novalidate="novalidate"> <div class="form-group"> <div class="input-group"> <span class="input-group-addon" id="UserEmail"><i class="fa fa-user" title="Enter Your username"></i></span> <input type="text" class="form-control" id="username" name="username" value="" required title="Please enter you username" placeholder="Enter Username" /> </div> <span class="help-block"></span> </div> <div class="form-group"> <div class="input-group"> <span class="input-group-addon" id="UserPasswordMatch"><i class="fa fa-lock" title="Choose password"></i></span> <input type="password" class="form-control" id="passwordmatch" name="passwordmatch" value="" required title="Enter your password" placeholder="Enter Password" /> </div> </div> <button type="submit" class="btn btn-success btn-block">Login</button> </form> </div> BookingAction.java: public class BookingAction { private String name; HotelReservationServceImpl service = new HotelReservationServceImpl(); public String execute() throws Exception { return "success"; } public String loginExecute() { return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 我还有一个带有私有属性的 User 类,其中包括带有 getter 和 setter 的 username 和 password。 service.java: public class HotelReservationServceImpl implements IHotelReservationService { HotelReservationDAOImpl dbcon = new HotelReservationDAOImpl(); @Override public int login(String username, String passwrd) { if(username.isEmpty() || passwrd.isEmpty()) { System.out.print(" Enter username and password "); } else { int i = dbcon.login(username, passwrd); } //dbcon.dbConnector(); return 0; } } struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="helloworld" extends="struts-default"> <action name="hello" class="com.reservation.action.BookingAction" method="execute"> <result name="success">/HelloWorld.jsp</result> </action> <action name="login" class="com.reservation.action.BookingAction" method="loginExecute"> <result name="success">/HelloWorld.jsp</result> </action> </package> </struts> 使用 Struts 标签将表单绑定到操作,将输入字段绑定到操作属性。 <%@ taglib prefix="s" uri="/struts-tags" %> <s:form id="loginForm" method="POST" action="login" novalidate="novalidate"> <div class="form-group"> <div class="input-group"> <span class="input-group-addon" id="UserEmail"><i class="fa fa-user" title="Enter Your username"></i></span> <s:textfield cssClass="form-control" id="username" name="user.username" value="" required title="Please enter you username" placeholder="Enter Username" /> </div> <span class="help-block"></span> </div> <div class="form-group"> <div class="input-group"> <span class="input-group-addon" id="UserPasswordMatch"><i class="fa fa-lock" title="Choose password"></i></span> <s:password cssClass="form-control" id="passwordmatch" name="user.password" value="" required title="Enter your password" placeholder="Enter Password" /> </div> </div> <button type="submit" class="btn btn-success btn-block">Login</button> </s:form> 要绑定表单,您应该将操作名称设置为表单标签。要绑定输入字段,您应该将属性名称设置为 struts 输入标记。 这些属性位于 User bean 中,您应该将其聚合到操作类。 private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } 如果您不想为页面生成额外的 HTML,请使用 <constant name="struts.ui.theme" value="simple"/>
我在我的项目中实现了一个网络服务。我还在 JBoss 服务器上成功部署了一个项目。我可以在 jboss 管理控制台的 Web 服务部分看到 Web 服务。 w当我打开 wsdl U...
在 Struts 2 中提交后如何根据表单中输入的数据更新模型
我在 Struts 2 中有一个表单,其中包含不同类型的字段。当我在表单中输入数据并提交时,输入的数据不会被赋值,并且在 ActionSupport 类中它们为空。下面是我的样本
我想知道,如果我们填充action类属性,我们是否可以直接在结果JSP中访问它们,而不将它们分配给action类中的表单?
我只想在操作类中验证特定方法。 动作方法是这个 public String add() 抛出异常 { // aflag = true; org.setAoName(aoName); orgBo.addOrg(org); orglist = orgBo.
如何将 Struts 2 中的迭代器列表传递给 JavaScript?
扣除 <fieldset class="fieldset"> <legend class="legendtitle">DEDUCTIONS</legend> <table width="100%" border="0" cellspacing= "0" cellpadding="0"> <tr> <td class="Htd_one1" width="20%"><div align="center">Component</div></td> <td class="Htd_one1" width="20%"><div align="center">Allocated</div></td> </tr> <s:iterator value="%{#resultLists.deductionLists}" id="hrEmpSalaryCompDeductionList" status="stat"> <s:if test="%{#allowanceList.allocatedSalAmount > 0}"> <tr> <td class="labelone1" > <div align="center"> <s:property value="%{#allowanceList.componentDesc}" /> </div> </td> <td class="dataone1" > <div align="right"> <s:property value="%{#allowanceList.allocatedSalAmount}" /> </div> </td> </tr> </s:if> </s:iterator> </table> </fieldset> 如果迭代器列表allowanceList.allocatedSalAmount中resultLists.deductionLists的值都不大于0,我需要隐藏整个字段集。 我想到调用 JavaScript 并传递 resultLists.deductionLists 的值,然后设置一个计数器(如果任何 allowanceList.allocatedSalAmount 大于 0)。 但是,我怎样才能将 resultLists.deductionLists 的列表值传递给 JavaScript 并从中访问所有 allowanceList.allocatedSalAmount 呢? 要隐藏整个 fieldset,您必须用 <s:if> 标签将其包裹起来。 <s:if test="%{#allowanceList.allocatedSalAmount > 0}"> <fieldset class="fieldset"> <legend class="legendtitle">DEDUCTIONS</legend> <table width="100%" border="0" cellspacing= "0" cellpadding="0"> <tr> <td class="Htd_one1" width="20%"><div align="center">Component</div></td> <td class="Htd_one1" width="20%"><div align="center">Allocated</div></td> </tr> <s:iterator value="%{#resultLists.deductionLists}" id="hrEmpSalaryCompDeductionList" status="stat"> <tr> <td class="labelone1" > <div align="center"> <s:property value="%{#allowanceList.componentDesc}" /> </div> </td> <td class="dataone1" > <div align="right"> <s:property value="%{#allowanceList.allocatedSalAmount}" /> </div> </td> </tr> </s:iterator> </table> </fieldset> </s:if> 因为在 fieldset 中一次只能迭代一个列表,所以不能让同一个迭代器迭代两个列表。您必须在 <s:if> 标记中定义要计算的正确表达式,以决定是否应该显示字段集。