struts 2 ajax示例

时间:2020-02-23 14:41:54  来源:igfitidea点击:

在本教程中,我们将看到我们如何在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并点击提交