JSP(JavaServer Pages)是一种在服务器上运行的基于Java的视图技术,它允许您在(客户端语言,如HTML,CSS,JavaScript等)中编写模板文本,并与后端Java代码进行交互。
如何在Struts2中使用(锚标记)发送值?请给我一个例子,我知道我们可以使用 标签来实现这一点,但我希望使用锚标签。
我想上传大量图像文件(最大大小10mb)。 为此,我使用以下配置:struts.xml: 我想上传大量图像文件(最大大小10mb)。 为此,我使用以下配置:struts.xml: <interceptors> <interceptor-stack name="fileUploadStack"> <interceptor-ref name="exception" /> <interceptor-ref name="alias" /> <interceptor-ref name="servletConfig" /> <interceptor-ref name="prepare" /> <interceptor-ref name="i18n" /> <interceptor-ref name="chain" /> <interceptor-ref name="debugging" /> <interceptor-ref name="profiling" /> <interceptor-ref name="scopedModelDriven" /> <interceptor-ref name="modelDriven" /> <interceptor-ref name="fileUpload"> <param name="maximumSize">10485760</param> <param name="allowedTypes">image/jpg,image/jpeg,image/gif,image/png,image/pjpeg</param> </interceptor-ref> <interceptor-ref name="checkbox" /> <interceptor-ref name="staticParams" /> <interceptor-ref name="actionMappingParams" /> <interceptor-ref name="params"> <param name="excludeParams"> dojo\..*,^struts\..*</param> </interceptor-ref> <interceptor-ref name="conversionError" /> <interceptor-ref name="validation"> <param name="excludeMethods"> input,back,cancel,browse</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods"> input,back,cancel,browse</param> </interceptor-ref> </interceptor-stack> </interceptors> <action name="ownmessageswithimage" class="social.action.UserMessages" method="insertImage"> <result name="success">/pages/profile/userSingleMessage.jsp</result> <result name="input">/pages/errorpages/ajaxError.jsp</result> <result name="login">/pages/pleaselogin.jsp</result> </action> 编辑: 这是我的JSP文件代码: <script type="text/javascript" src="js/jquery.form.js"></script> <form id="own_message_post" action="ownmessageswithimage" method="post"> <input id="fileupload" type="file" name="user_post_image" data-url="ownmessages" /> <textarea name="message" rows="4" cols="45" id="text_message_status" ></textarea><br> <input type="submit" value="Post" id="submit_form_button" style="background:#004091;padding: 2px 20px 2px 20px;color: whitesmoke;font-weight: bold" /> </form> <script type="text/javascript"> $('#own_message_post').ajaxForm(function(data) { $('#fileupload').val(""); }); </script> 我正在使用异步文件上传脚本, 但问题是它不能上传最多 10 MB 的大文件。 如何使其成为可能? 您应该将常量添加到配置文件中以允许多部分内容大小达到 10M <constant name="struts.multipart.maxSize" value="10485760"/> 我不确定它是否有帮助,但我在客户端使用表单时使用了多部分加密来上传大文件。 这是从文件输入框中以表单形式发送一个文件。 不过我对 struts 不太确定。 似乎<param name="allowedTypes">image/jpg,image/jpeg,image/gif,image/png,image/pjpeg</param>只允许您上传此类类型的图像。在那里添加其他 MIME 类型,例如text/xml 或 任何其他类型
我可以使用Struts 2上传文件。 但我想在 Struts 2 中显示有关上传文件的详细信息(文件名、文件大小、文件类型)。 我正在尝试使用 我可以使用 Struts 2 上传文件。 但我想在 Struts 2 中显示有关上传文件的详细信息(Filename、filesize、filetype)。 我正在尝试使用 <s:property value="myFile" /> 标签获取详细信息, 但它总是显示[Object HTMLDocument]。 我的代码如下。 uploadfile.jsp: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <div id="success-image"> <s:property value="myFile" /> <s:head theme="ajax" /> <s:form id="asset-upload" name="asset-upload" action="uploadFile.action" method="POST" theme="ajax" enctype="multipart/form-data"> <s:file name="myFile" label="Upload Image"/> <s:submit targets="success-image" showLoadingText="false" indicator="uploading-image" id="asdf"/> </s:form> </div> </body> </html> 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.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <constant name="struts.multipart.maxSize" value="1000000000" /> <package name="default" extends="struts-default,json-default" namespace="/"> <action name="uploadFile" class="com.isam.struts.uploadFile"> <result name="success"> <param name="myFile">myFile</param> </result> <result name="error">login.jsp</result> </action> <action name="autoCompleterList" class="com.isam.struts.AutoCompleterList"> <result type="json" /> </action> </package> </struts> UploadFile.java: package com.isam.struts; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import com.opensymphony.xwork2.ActionSupport; public class uploadFile extends ActionSupport { private File myFile; private String myFileContentType; private String myFileFileName; private String destPath; public String execute() { /* Copy file to a safe location */ destPath = "C:/temp/"; try { System.out.println("Src File name: " + myFile); System.out.println("Dst File name: " + myFileFileName); File destFile = new File(destPath, myFileFileName); FileUtils.copyFile(myFile, destFile); } catch (IOException e) { e.printStackTrace(); return ERROR; } return SUCCESS; } public File getMyFile() { return myFile; } public void setMyFile(File myFile) { this.myFile = myFile; } public String getMyFileContentType() { return myFileContentType; } public void setMyFileContentType(String myFileContentType) { this.myFileContentType = myFileContentType; } public String getMyFileFileName() { return myFileFileName; } public void setMyFileFileName(String myFileFileName) { this.myFileFileName = myFileFileName; } } 那么我应该在JSP文件中添加什么来显示详细信息, 我需要在 struts.xml 文件中添加什么? 要在上传后在同一页面上显示文件详细信息,请将操作结果更改为: <action name="uploadFile" class="com.isam.struts.uploadFile"> <result name="success">uploadfile.jsp</result> <result name="error">login.jsp</result> </action> 在 JSP 中使用 <s:property> 标签来显示值: <s:property value="myFile.length()"/> <s:property value="myFileContentType"/> <s:property value="myFileFileName"/> 在uploadFile操作中,您需要放置信息的setter和getter以在结果中显示它。 public void setUpload(File myFile) { this.myFile= myFile; } public void setUploadContentType(String myFileContentType) { this.myFileContentType= myFileContentType; } public void setUploadFileName(String myFileFileName) { this.myFileFileName = myFileFileName; } public String getMyFileFileName() { return myFileFileName; } public String getMyFileSize() { return myFile.length(); } public String getMyFileContentType() { return myFileContentType; } 它为注入值命名,您可以使用这些值进一步显示 <s:property value="myFileName" /> <s:property value="myFileSize" /> <s:property value="myFileContentType" /> 如果文件有扩展名,您可以从myFile查看。如果它有图像类型,那么您应该应用编解码器来获取它和尺寸。然而,这不是必需的。获得 BufferedImage 后,您可以写入或缩放到任何图像类型或大小。 错误的是结果“成功”。结果应该是带有 id 图片参数的重定向操作的正常 URL,如果你想取回它,你必须再次加载它。
<table> <c:if test="${output.list == nul}"> <tr><td><input type="text" /><select></select><input type="text" /> </td> </tr> </c:if> <c:forEach var="iter" items="${output.list}"> <tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" /> </td> </tr> </c:forEach> </tbody> </table> 如果我的${list}为空,如何在不重复代码或不使用JavaScript的情况下显示.clone行? 我不知道我是否理解你的问题。如果你想输出一行包含所有内容,当列表为空时,尝试下一种方法: <table> <c:forEach var="i" begin="0" end="${not empty list?(fn:length(list)-1):0}"> <tr class="clone"> <td> <input type="text" /> <select></select> <input type="text" value="${list[i]!=null?list[i].getVal():''}" /> </td> </tr> </c:forEach> </tbody> 要使用 fn: 命名空间,只需在文件开头添加 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 更新:根据问题更改而更改 如果列表为空,则向列表添加一个空值。您可以在 servlet 或 JSP 中执行此操作,但在 JSP 中您必须编写额外的 java 代码来修改列表。 <table> <c:set var="list" value="${output.list}"/> <c:if test="${empty list && list != null}"> ${list.add(null)} </c:if> <c:forEach var="iter" items="${list}"> <tr><td><input type="text" /><select></select><input type="text" value="${iter.getVal()}" /> </td> </tr> </c:forEach> </tbody> </table>
我正在尝试让 Struts 教程正常工作,但当我尝试在 Tomcat 中运行该文件时遇到以下错误。 请求的资源 () 不可用。 Tomcat日志输出: 八月...
我正在使用 Struts 2 和 Freemarker。这是我的动作课: 封装测试; 导入java.util.ArrayList; 导入java.util.List; 公共类WelcomeAction { 私有字符串用户名; 公关...
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>
我正在尝试将复选框放在树节点中。我的代码如下。 我用过富脸。 在JSP页面中: <...
如何在Java中传递(request,response)等JSP隐式对象。 我想在Java代码中访问JSP隐式对象。 请建议如何实现这一目标? 我的Java代码是: 包测试。这里; 导入...
如何在Java中传递(request,response)等JSP隐式对象。 我想在Java代码中访问JSP隐式对象。 请建议如何实现这一目标? 我的Java代码是: 包测试。这里; 导入...
首先,我使用Struts 2 和Java。我试图让我的 LoginUser 操作类将信息传递给 UserBean Java Bean。 当 LoginUser 操作执行时,fullName 的 bean 值为
我在 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; }
将 Struts 2 与 Hibernate 3 集成时出现 NullPointerException
我正在按照教程集成 Struts 和 Hibernate,并收到 NullPointerException。我得到的错误是 2013 年 9 月 24 日上午 12:25:54 com.sun.faces.config.ConfigureListener
我的第二个迭代器有语法问题。我想迭代 equalesParties 的值,但我似乎找不到正确的语法。 这是导致问题的标签:value="{
在 Struts 2 中使用 servlet 时出现错误 404
我已将所有 Struts jar 包含在 WEB-INF/lib 中并导入到项目中。我正在尝试从简单的基于 servlet 的项目迁移到 Struts 2。我在 web.xml 中添加了一个 标签并...
当我尝试将 Struts 2 值作为名为 handleChange() 的 JavaScript 函数的参数时,我的 JSP 页面遇到问题,以便我可以保存该集合的新值...
我使用以下代码将变量从 JSP 发送到 Java: 我使用此代码将变量从 JSP 发送到 Java : <s:hidden name="checkActes" id="checkActes"></s:hidden> <s:checkbox id="checkActes" labelposition="left" cssClass=" block-left check" label="%{getText('prestationPsDto.actes')}" key="prestationPsDto.actesSpec"/> 添加hidden属性后,JS中的action不起作用: $('#checkActes').on('click',function() { console.log("kjfffkj"); if($('#checkActes').is(':checked')){ console.log("kjkj") $("#cleCotation").show() } else{ $("#cleCotation").hide() $('#cleCotation').find("input,select").val(''); } }); 我想问题是因为我在 JSP 和 JS 中使用相同的id。 有什么办法可以解决这个问题吗? Struts 标签 id 属性用于 HTML ID 属性。两个输入 hidden 和 select 具有相同的 ID,但 JavaScript 代码找到第一个,但应使用第二个。 问题的解决方案是对 id 属性使用不同的值。 <s:hidden name="checkActes" id="checkActesID"></s:hidden> 您可以在文档站点上找到如何使用 struts 标签的详细信息。 对于该问题有一个类似的答案,其中有指向文档网站的链接
如何从 Struts 2 中的 JSP 页面同时调用/访问 2 个不同的操作?
我正在开发一个Struts2应用程序。为了删除重复的代码,我希望能够访问 2 个不同的 JSP 页面(假设为 page_1.jsp 和 page_2.jsp)中的一个操作(我们称之为 A)。到目前为止...
将 execAndWait 拦截器与 validate() 方法一起使用时,出现 NullPointerException。 在index.jsp 中,我有一个firstName 文本字段。当我提交时,它首先验证 Ac 中的字符串...
将 execAndWait 拦截器与 validate() 方法一起使用时,出现 NullPointerException。 在index.jsp 中,我有一个firstName 文本字段。当我提交时,它首先验证 Ac 中的字符串...