struts 2 ajax示例
在本教程中,我们将看到我们如何在Struts 2框架中使用WebApplication中的Ajax。
Struts 2中的Ajax支持:
Struts 2为使用Dojo Toolkit库提供了对Ajax的内置支持。
它配备了Dojo Ajax API,我们可以用来支持AJAX.对于AJAX支持,我们需要将以下内容添加到ClassPath Struts2-Dojo-plugin.jar。
AutoCompleter示例:创建名为"autocompleteInstruts2"的项目。
在Eclipse IDE中配置Struts 2,请参阅配置Struts 2链接。
我们将创建TextBox,它将自动完成并建议输入。
创建名为autocompleteaction.java的动作类。
在src文件夹中的package org.igi.javapostssfor learning下。
它会呼吁我们的自动填充特例。
将内容复制到autocompleteaction.java
package org.igi.javaPostsForLearning; import java.util.ArrayList; import com.opensymphony.xwork2.ActionSupport; public class AutoCompleteAction extends ActionSupport{ public ArrayList listOfStates=new ArrayList(); public String state; public String execute() { populatelistOfStates(); return SUCCESS; } public void populatelistOfStates() {//i am taking few states here with same first character.you can have all states listOfStates.add("Maharastra"); listOfStates.add("Madhya Pradesh"); listOfStates.add("Meghalaya"); listOfStates.add("Karnataka"); listOfStates.add("Kerala"); } }
JSP:
我们将在WebContent文件夹下创建一个名为"autocomplete.jsp"的一个jsp。
将以下代码复制到autocomplete.jsp中
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib uri="/struts-dojo-tags" prefix="sx"%> <%@taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <sx:head <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Auto complete example</title> </head> <body bgcolor="lightblue"> <h2><Welcome to Netherlands</h2> <s:form> <sx:autocompleter size="1" name="state" list="listOfStates" showDownArrow="false" label="Choose state"></sx:autocompleter> <s:submit ></s:submit> </s:form> </body> </html>
现在这里<%@ taglib uri ="struts-dojo-tags"prefix ="sx"%>是JSP中用于包括Dojo Ajax标记文件的指令。
标签用于JSP中具有文本框或者下拉列表。
因此,写出几个字符,它将向我们展示相关的选项。
在此,showdownarrow属性指示是否显示下拉目。
其中我们将其设置为False,以便我们将在Google上看到与我们在谷歌上看到相同的文本箱。
struts.xml:
Struts.xml不会发生重大更改。
它将是相同类型的URL动作映射
在SRC文件夹中创建Struts.xml。
在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> <package name="default" extends="struts-default" namespace="/"> <action name="AutoComplete" class="org.igi.javaPostsForLearning.AutoCompleteAction" > <result name="success">autoComplete.jsp</result> </action> </package> </struts>
web.xml:
它也与之前的帖子中的相同。
在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>autoCompleteInStruts2</display-name> <filter> <filter-name> struts2 </filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
运行应用程序:
右键单击"项目" - >在服务器上运行 - >运行。
复制http://localhost:8080/autocompleteInstruts2 /自动完成链接到浏览器,然后按Enter键,我们将获取屏幕。
在TextBox中输入"M",我们将获取屏幕。
延伸以上示例:
我们将展示上面的示例,这样当我们单击AutoComplete.jsp上的提交时,我们将被定向为提交状态的欢迎页面。
添加另一个操作文件:
创建名为"welcometostate.java"的新动作文件
在welcometostate.java中复制以下代码
package org.igi.javaPostsForLearning; import com.opensymphony.xwork2.ActionSupport; public class WelcomeToState extends ActionSupport{ public String state; public String execute() { return SUCCESS; } }
所以在autocomplete.jsp中添加act ="welcometostate"标记中的。
<s:form action="WelcomeTostate">
添加新的JSP文件:
在名为"welcometostate.jsp"的WebContent文件夹中创建新的JSP文件
将以下代码复制到welcomeTostate.jsp。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@taglib uri="/struts-tags" prefix="s" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Welcome to state</title> </head> <body bgcolor="lightblue"> Welcome to <s:property value="state" </body> </html>
现在在标签中的Struts2.xml中添加以下操作映射
<action name="WelcomeToState" class="org.igi.javaPostsForLearning.WelcomeToState" > <result name="success">WelcomeToState.jsp</result> </action>
再次运行应用程序:
遵循以上步骤(在运行应用程序标题下)进行运行应用程序。
选择Maharastra并点击提交