JSP(JavaServer Pages)是一种在服务器上运行的基于Java的视图技术,它允许您在(客户端语言,如HTML,CSS,JavaScript等)中编写模板文本,并与后端Java代码进行交互。
无法在我的 JSP 中查看 ActionMessages 以及 Struts 2 中的验证问题
我的代码遇到各种问题: 我无法查看 LoginAction 设置的 ActionMessages 和 ActionErrors 登录后,如果我再次访问 URL:/login,它不会将我重定向到成功
Scriptlet 和 EL 在 JSP 中呈现为文本(未编译)
我在 JSP 页面中包含标签库和使用表达式语言时遇到问题。 JSP 不希望计算表达式并像简单文本一样返回它们。 例如,如果 JSP 内容 &...
Scriptlet 和 EL 在 JSP 中呈现为文本(未编译)
我在 JSP 页面中包含标签库和使用表达式语言时遇到问题。 JSP 不希望计算表达式并像简单文本一样返回它们。 例如,如果 JSP 内容 &...
我在我的项目中使用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>
我正在尝试从我的前端 JSP 和另一个名为 questions 的表中向名为 Questionpaper 的表添加一些详细信息。 在表格试卷中,我有一个名为 ExamID 的列,我必须...
如何在 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 属性,是吗
我遇到了显示包含 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 来限制渲染行。
为什么我的 JavaScript 中的 setTimeout 函数无法正确执行多轮下载?
我尝试使用 setTimeout 和 top.location.href 在 JSP 页面中顺序下载多个文件,但下载过程的行为不符合预期。而不是在
错误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 接口。 进一步阅读:准备拦截器
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"/>