OUTPUT
JSP
<%@taglib uri="/struts-jquery-tags" prefix="sj"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<sj:head jquerytheme="flick" jqueryui="true" />
</head>
<script>
$(document).ready(function() {
 $('#states').change(function(event) {  
  var state = $("select#states").val();
  $.getJSON('/nvsmx/jsonSelectAction.action', {   
   stateName : state   
  }, function(jsonResponse) {   
   $('#message').text(jsonResponse.message);
   var select = $('#cities');
   select.find('option').remove();
   $.each(jsonResponse.cityMap, function(key, value) {
    $('<option>').val(key).text(value).appendTo(select);
   });
  });
 });
});
</script>
<body>
 <h1>Welcome to AJAX + JSON</h1>
 <sj:tabbedpanel id="localtabs" cssClass="list">
  <sj:tab id="tab1" target="tone" label="Ajax" />
  <sj:tab id="tab2" target="ttwo" label="getJSON" />
  <sj:tab id="tab3" target="tthree" label="JSON-ACTION" />
  <sj:tab id="tab4" target="tfour" label="JSON-SELECT" />
  <div id="tone">
   <sj:div id="resultDiv">
   </sj:div>
   <s:form id="form" namespace="/" action="ajax/Ajax/ajax" method="post">
    <s:textfield id="id" name="id" value="1" label="ID" />
    <br>
    <sj:submit value="Submit" targets="resultDiv" />
   </s:form>
  </div>
  <div id="ttwo">
   <s:form id="form2" namespace="/" action="jsonMethoAction"
    method="post">
    <sj:submit value="JSON METHOD" />
   </s:form>
  </div>
  <div id="tthree">
   <s:form id="form3" namespace="/" action="jsonAction" method="post">
    <sj:submit value="JSON ACTION" />
   </s:form>
  </div>
  <div id="tfour"> 
    <s:url var="remoteurl" namespace="/" value="/jsonAction.action"/>
   <sj:select href="%{remoteurl}"
         id="states"
         name="states"
         list="stateList"
         emptyOption="false"
         headerKey="-1"
         headerValue="Please Select a Language"/>
          <br><br><div id="message"></div>         
         <br><s:select id="cities" name="cities" list="{'Select State'}" label="City" />
  </div>
 </sj:tabbedpanel>
</body>
</html>
CONTROLLER/ACTION
;
1) 
package com.el.nvsmx.pd.controller.json
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.Action;
public class JsonCTRL {
 private List<String> stateList = new ArrayList<String>();
 private Map<String, String> cityMap = new HashMap<String, String>();
 private String stateName;
 private String message;
    public String execute() {
     System.out.println("CALLED EXECUTE()");     
     if ("Gujarat".equals(stateName)) {
   setMessage("Welcome to GUJARAT");
   getCityMap().put("1", "Anand");
   getCityMap().put("2", "V.V.Nagar");
   getCityMap().put("3", "Baroda");
   getCityMap().put("4", "Ahmedabad");
  } else if ("Rajasthan".equals(stateName)) {
   setMessage("Welcome to Rajasthan");
   getCityMap().put("1", "Jaipur");
   getCityMap().put("2", "Udepur");
  }  
     return Action.SUCCESS;
 }
 public String getJSON(){
  getStateList().add("Gujarat");
  getStateList().add("Rajasthan");
        return execute();
    }
 public JsonCTRL(){
 }
 public String getStateName() {
  return stateName;
 }
 public void setStateName(String stateName) {
  this.stateName = stateName;
 }
 public String getMessage() {
  return message;
 }
 public void setMessage(String message) {
  this.message = message;
 }
 public Map<String, String> getCityMap() {
  return cityMap;
 }
 public void setCityMap(Map<String, String> cityMap) {
  this.cityMap = cityMap;
 }
 public List<String> getStateList() {
  return stateList;
 }
 public void setStateList(List<String> stateList) {
  this.stateList = stateList;
 }
}
2)
package com.el.nvsmx.pd.controller.ajax;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import com.elitecore.nvsmx.policydesigner.constants.Results;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;
public class AjaxCTRL extends ActionSupport implements ServletRequestAware,
  ServletResponseAware, Preparable {
 private static final long serialVersionUID = 1L;
 private static final String MODULE = AjaxCTRL.class.getSimpleName();
 private HttpServletRequest request;
 private HttpServletResponse response;
 private Map<String, String> stateMap = new LinkedHashMap<String, String>();
 private List<String> dataList = new ArrayList<String>();
 public String list() {
  return Results.LIST;
 }
 public String getJSON() {
  dataList.add("First");
  return "Hello i am Json Result";
 }
 public String ajax() {
  String key = request.getParameter("id");
  String result = stateMap.get(key);
  System.out.println("Name: " + result);
  if (result == null) {
   result = "Unknown";
  }
  try {
   response.getWriter().write("your are in " + result + " state of INDIA.");
  } catch (IOException e) {
   System.out.println("Error: " + e.getMessage());
   e.printStackTrace();
  }
  return null;
 }
 @Override
 public void setServletRequest(HttpServletRequest request) {
  this.request = request;
 }
 @Override
 public void setServletResponse(HttpServletResponse response) {
  this.response = response;
 }
 @Override
 public void prepare() throws Exception {
  System.out.println("Called prepare()");
  if (stateMap.size() == 0) {
   System.out.println("Initializing Map");
   stateMap.put("1", "Kerala");
   stateMap.put("2", "Tamil Nadu");
   stateMap.put("3", "Jammu Kashmir");
   stateMap.put("4", "Assam");
   stateMap.put("5", "Gujarat");
   stateMap.put("6", "Goa");
   stateMap.put("7", "Maharastra");
   stateMap.put("8", "Rajasthan");
  }
 }
}
STRUTS.XML 
 <package name="jsonnvsmx" namespace="/" extends="json-default">
  <action name="jsonMethoAction" class="com.el.nvsmx.pd.controller.ajax.AjaxCTRL">
   <result type="json" />
  </action>
  <action name="jsonAction" class="com.el.nvsmx.pd.controller.json.JsonCTRL">
   <result type="json" />
  </action>
  <action name="jsonSelectAction" class="com.el.nvsmx.pd.controller.json.JsonCTRL">
   <result type="json" />
  </action>
  <action name="ajaxJsonAction" class="com.el.nvsmx.pd.controller.json.JsonCTRL">
   <result name="success" type="json" >/view/commons/Success.jsp</result>
  </action>
 </package>
Keep Visiting :)
Write your comment




No comments:
Post a Comment