Apache Struts 2是一个基于servlet的可扩展框架,在其架构中实现了模型 - 视图 - 控制器(MVC)模式,用于创建企业级Java Web应用程序。
是否可以应用Struts 2国际化(i18n),通过单击将网站所有网页上的语言从英语更改为印地语? 如果可以的话我该如何解决这个问题
有没有办法改变验证的顺序:Struts 2中的validate()与validation.xml?
我有一个validation.xml文件来检查表单的字段是否为空以及那种简单的验证。我还有一个 validate() 方法(从 ActionSupport 扩展)来检查更复杂的
Struts 2 标签中的 HTML 标签自动编码为 UTF-8
我在 Struts 2 标签中将 HTML 标签自动编码为 UTF-8 时遇到一些问题。 我想将一个包含 HTML 标签的值从操作类传递到 JSP 页面,但在 Struts 标签中该值是自动的...
Struts 2 标签中的 HTML 标签自动编码为 UTF-8
我在 Struts 2 标签中将 HTML 标签自动编码为 UTF-8 时遇到一些问题。 我想将一个包含 HTML 标签的值从操作类传递到 JSP 页面,但在 Struts 标签中该值是自动的...
我正在使用以下 JavaScript 代码来设置元素的值。 document.getElementById('alert['+i+']').innerHTML = "alert"; 该元素嵌套在 Struts set 标记中。 (ID 我...
如何在 Struts 2 中默认选中 HTML 输入复选框?
我在JSP中有一个复选框,它由一个HashMap组成,例如, “1”、“姓名” “2”、“年龄” “3”、“性别” 现在,我想要...
404 错误 /helloworld/index.jsp。请求的资源不可用。 Struts 2 你好世界
我在这个例子中遇到问题 我使用 eclipse for Java EE 和 Apache Tomcat 8。 我的项目结构: web.xml代码: 我在这个示例中遇到问题 我使用 eclipse for Java EE 和 Apache Tomcat 8。 我的项目结构: web.xml 代码: <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Hello World Struts 2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> 其他文件代码与struts网站相同。 当我运行 index.jsp 文件时,出现以下错误: **HTTP 状态 404 - /helloworld/index.jsp 输入状态报告 消息/helloworld/index.jsp 描述 请求的资源不可用。** 有人能找出我无法运行它的原因吗? 首先使用 Maven 配置创建项目,要访问 Struts 操作,您应该使用 url 第 6 步 - 构建 WAR 文件并运行应用程序 执行mvn clean包来创建war文件。 将 war 文件复制到您的 Servlet 容器。在你的 Servlet 之后 容器成功部署 war 文件转到此 URL http://localhost:8080/helloworld/index.action 你应该看到的地方 以下: (来源:apache.org) Web 应用程序上下文是部署应用程序的位置。在文档网址中它是 /helloworld,在图像上它是 /Hello_World_Struts2_Ant。将其用作 url 的一部分。您在部署期间使用哪个应用程序上下文并不重要,但 url 取决于它。如果您想更改 Web 应用程序上下文,您应该阅读 Java - 如何在 Eclipse 中更改动态 Web 项目的上下文根。在上下文之后,您可以使用带有 .action 扩展名的操作名称来执行操作。 不要使用像 localhost:8080/helloworld/index.jsp 这样的 URL,因为您可能无法获取资源,因为它已经由 Web 服务器处理。
如何在 Struts 2 中使用 <s:select> 预选择多个值
JSP: JSP: <s:form action="product"> <s:select label="Select Data" cssStyle="width:150; height:73" size="6" multiple="true" headerKey="-1" headerValue="All" list="#{'1':'Data1', '2':'Data2', '3':'Data3', '4':'Data4' }" name="dataValue" value="%{2,3}" /> <s:submit value="save"></s:submit> </s:form> 行动: public class Product { private String dataValue; //getter setter ....... public String execute(){ return "success"; } } 问题: 同时,仅选择一个字段。例如,我传递了值2,3,但只选择了Data3。 我需要同时选择 Data2 和 Data3。 要预先选择多个值,您需要在 value 属性中使用列表或数组作为操作属性。 '1', '2',... 是字符类型值,因此您返回一个字符列表 public List<Character> getDataValue(){ return dataValue; } <s:select label="Select Data" cssStyle="width:150; height:73" size="6" multiple="true" headerKey="-1" headerValue="All" list="#{'1':'Data1', '2':'Data2', '3':'Data3', '4':'Data4' }" name="dataValue" value="%{dataValue}" />
如何将 Struts 2 与 Hibernate 和 PostgreSQL 集成
如何将Struts 2与Hibernate和PostgreSQL集成? org.postgresql.Driver 如何将 Struts 2 与 Hibernate 和 PostgreSQL 集成? <property name="hibernate.connection.driver_class">org.postgresql.Driver</property> <property name="hibernate.connection.url">jdbc:postgresql://localhost/jvmhubtutorial</property> <property name="hibernate.connection.username">user</property> <property name="hibernate.connection.password">password</property> 您可以通过 servlet 上下文集成 Hibernate 和 Struts2,您可以在其中共享会话工厂。会话工厂用于打开 Hibernate 会话并使用它对数据库执行查询。这是此类集成的“示例”。 在Struts2中,没有官方插件来集成Hibernate 框架。但是,您可以通过以下步骤解决: 注册自定义ServletContextListener。 在ServletContextListener类中,初始化Hibernate会话并将其存储到servlet上下文中。 在action类中,从servlet上下文中获取Hibernate会话,并正常执行Hibernate任务。 在 Struts2 中,有一个名为 Struts2 Full Hibernate Plugin 或 struts2-s2hibernate 的非官方插件,它提供与 Hibernate 的集成。有例子: 通过 s2hibernate 插件进行 Struts2 hibernate 集成 Struts 2 + Hibernate 与“完整 Hibernate 插件”集成
类 SampleAction 扩展了 ActionSupport { 私有地图circleIdNameMap; 公共字符串预处理(){ --填充 MAP 值的逻辑 } --getter 和 setter } 现在,我的问题...
Struts 2 文本字段即使没有 value 属性也会显示值
我有一个 Struts 2 标签,我只需要让用户输入一个值并将其发送到操作。 我有一个 Struts 2 <s:textfield> 标签,我只需要让用户输入一个值并将其发送到操作。 <s:textfield name="user.firstAnswer" size="110" cssClass="FormObjectCompulsary" autocomplete="off" /> 即使加载此页面,用户对象也包含第一个答案的值。我不想将其显示在文本字段中。相反,我希望文本字段为空。 但是没有指定 value 属性,用户对象中的值仍然显示在该字段中。 如果要添加新对象 user,那么您应该在 JSP 中显示它之前使用 new 运算符创建该对象。它将包含未显示的 null 引用。如果未指定 value 属性,则使用 name 显示值。 在 execute() 内后将用户对象设置为空。所以它再次不会在文本框中显示值。 例如。 user = null; 我正在向您展示一段代码,也许会对您有所帮助。 请参阅execute()。 package online.solution; import com.opensymphony.xwork2.Action; public class MyAction implements Action { UserBean user = new UserBean(); public UserBean getUser() { return user; } public void setUser(UserBean user) { this.user = user; } @SuppressWarnings("finally") @Override public String execute() throws Exception { String result = ""; try { user.setGuest("Bye bye"); System.out.println(user.getUsername() + " " + user.getPassword()); if (user.getUsername().equals(user.getPassword())) { result = SUCCESS; } else { result = ERROR; } user = null; //Make it null when all task completed. } catch (Exception exception) { System.out.println("Exception -> " + exception); } finally { return result; } } @Override protected void finalize() throws Throwable { super.finalize(); } } 通过查看 name="user.firstAnswer" 我认为您正在将 ModelDriven<> 实现到您的操作类中。可能发生的情况是,当您在操作类中返回成功并进入 jsp 页面时,如果在操作中您的用户模型有一些值..模型驱动将在您的 JSP 页面上为您设置这些字段。 我在学习 struts2 时使用了这种方法来更新表单功能。只需确保用户对象在返回之前不包含任何内容...
我在JSP中有以下多选块 在 标签内。当我提交表格时 操作方法工作正常。 我在 JSP 中有以下多选块 在 <s:form> 标签内。当我提交表格时 操作方法工作正常。 <s:select id="prodSelect" list="#application.actionForm.vtrProduct" name="repSearchProdVO.product" multiple="true" emptyOption="false" headerKey="-1" theme="simple" style=" font-size: 14px; color: #000069; font-family: 'Arial, Helvetica, sans-serif'; height: 20px; width: 240px; " value="#session.repSearchVO.product" /> 但是,repSearchProdVO.product只能处理890个选项。 我有超过3000个选项需要选择。 当我选择 2000 个选项时,它仍然返回 890 个选项。 如果有任何帮助,我将不胜感激。 我忘了提及服务器是Tomcat 9.0.75。 server.xml 中端口 8080 的 maxParameterCount 的默认值为 1000。我将其更改为 10000,一切都按预期工作。这可能会对某人有所帮助。 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxParameterCount="10000" /> 在 Struts 2 中,无法将 <s:select> 用于大型数据集。因为它呈现一个简单的 HTML <select>,它受到显示大小选项的限制。如果您设置更多选项,它们只会隐藏在您的显示尺寸后面。如果您需要在大型数据集中选择多个选项,那么您可以使用带有结果查询的请求。 例如<sj:autocompleter>可以通过搜索词使用的远程https请求来帮助您查询大型数据集。 它有一个 multiselect 属性 创建多项选择。如果值通过 value 属性作为数组或集合(适当类型)传递,则标记将预先选择多个值。如果其中一个键等于集合或数组中的值之一,它将被选择。 您可以在this答案中找到自动完成器小部件的示例。
设置调度程序:FORWARD 在 Struts 2 中使 struts.actionMapping 变为 noActionMapping
要在jsp或标签中获取struts.actionMapping,我们使用request的struts.actionMapping 举个例子: 显示出一些东西...
这些是我与 AccessDenied.jsp 和 HelloWorld.jsp 一起创建的文件,但代码无法运行。 包 com.Struts; 导入 com.opensymphony.xwork2.ActionSupport; 公开课
我想将JSP变量值设置为Struts标签, 在下面的代码中,我必须在 我想将JSP变量值设置为Struts标签<s:set var="" value="">, 在下面的代码中,我必须在 carbo 中设置 <s:set name="c" value=" "/> 变量的值而不是常量值。 我该怎么做? <%! String carbo=""; %> <% String dish_name=(String)session.getAttribute("d"); String calories_qty=(String)session.getAttribute("a"); try { Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/medical","root","root"); //Connection conn=dbConn.getConnection(); Statement stmt = conn.createStatement(); System.out.println("jsp dish_name="+dish_name); System.out.println("jsp dish_name="+calories_qty); ResultSet rs = stmt.executeQuery("Select * from calories c,dishdetail d where c.dishdetail_Id=d.id and d.dishName='"+dish_name+"' AND d.size='"+calories_qty+"' "); while(rs.next()){ carbo=rs.getString("carbo"); //carbo=Float.parseFloat(rs.getString("carbo")); } System.out.println("jsp carbo:"+carbo); } catch(Exception e){ System.out.println("error:"+e); } %> <s:set name="c" value="45" /> <p> carbo: <s:property value="#c" /></p> <sj:progressbar cssStyle="width:20%; height:10px;" value="%{c}" onCompleteTopics="reloadfifthlist" onChangeTopics="mychangetopic"/> 我希望我能很好地理解你想要实现的目标,但我会同意 <s:set name="c" value="<%= carbo %>"/> 最简单的方法 <s:set var="c"><%=carbo%></s:set> <s:property value="#c" /> 但是,您应该在操作中编写应用程序逻辑,而不是在脚本中编写应用程序逻辑,您可以将这些变量放在操作类中。该动作可以将调度结果返回到JSP。然后,在为属性创建 getter 和 setter 后,您可以使用 OGNL 表达式来引用操作属性。例如 @Action(value="name", results={ @Result(location = "/path/to/page.jsp") }) class MyAction extends ActionSupport { private String carbo; //getters and setters here public String execute(){ //your logic here return SUCCESS; } } 那么您只需引用此操作属性即可 <s:property value="%{carbo}" />
我使用的是Struts 2框架,我的问题是: 如果用户登录系统并单击某个操作,比如说 ACTION1,那么流程将转到操作类并执行某个方法,w...
Struts 2 中 JSON 结果出现 LazyInitializationException
我正在尝试实现一个 Hibernate 会话/事务拦截器以避免 Struts2 中 JSON 结果出现 LazyInitializationException,但我还是得到了这个异常: 245968 [http-8080-7] 错误实用程序。
是否可以使用 OGNL 更改会话范围属性? 例如,如果我的会话中有一个名为 PROCESS_CONFIG 的属性,它是一个具有属性名称的对象,我该如何更改...
我正在使用Struts2。 我有一个付款页面,例如abc.example.com,我需要重定向到一些常见的 URL,例如 payment.example.com。 在这里,用户重定向到通用支付页面,然后用户
我正在使用 Bootstrap 进行 UI 开发。当我在其中使用 Struts 2 标签作为 时,完整的页面对齐被破坏了。当我用普通替换 s: (Struts 2 标签) 标签时...