我需要使用jQuery Ajax将表单数据从jsp传递给struts2,并从Struts2动作类接收JSON数据。 我已经给出了下面的代码。当我经过AJAX数据,使用jquery Ajax发送数据从jsp到struts2动作类
url:'search.action?searchText='+ $('searchValue').value+'&environment='+$('environmentSelect').value
“未定义”获得通过,而不是orijinal值从JSP的动作类。
我的JSP
<div id="tab0">
<s:form action="search" method="post">
<table style="margin-left: auto; margin-right: auto">
<tr>
<td>Environment:</td>
<td><select id="environmentSelect" name="environment">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select></td>
</tr>
<tr>
<td>Search Value:</td>
<td><input id="searchValue" name="searchText" type="text" /></td>
</tr>
<tr>
<td></td>
<td><button id="searchButton">Search</button></td>
</tr>
</table>
</s:form>
</div>
我Ajax的功能是:
$("#searchButton").on("click",function(){
console.log("Inside Ajax call = "+ $('#tab0'));
$.ajax({
type: 'POST',
url:'search.action?searchText='+ $('searchValue').value+'&environment='+$('environmentSelect').value,
dataType: 'json',
success: function(data){
console.log(stringify(data));
s=data....
}
document.getElementById('displayLog').innerHTML=s;
});
return false;
});
的struts.xml:
<struts>
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />
<constant name="struts.devMode" value="true" />
<constant name="struts.custom.i18n.resources"
value="ApplicationResources" />
<constant name="struts.convention.default.parent.package" value="default"/>
<constant name="struts.ui.theme" value="simple" />
<package name="default" extends="struts-default" namespace="/">
<action name="search" class="com.SearchAction" method="execute">
<result name="success">/jsp/dummy.jsp</result>
<result name="error">/jsp/search.jsp</result>
</action>
</package>
</struts>
Action类:
public class SearchAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String environment;
private String searchText;
public String getEnvironment() {
return environment;
}
public void setEnvironment(String environment) {
System.out.println("environment in setter new = "+ environment);
this.environment = environment;
}
public String getSearchText() {
return searchText;
}
public void setSearchText(String searchText) {
System.out.println("searchText in setter = "+ searchText);
this.searchText = searchText;
}
public String execute() {
Map map1 = new Map();
if(environment !=null && searchText != null){
map1= getMap(environment,searchText);
return success;
}
else{
return "error";
}
}
}
我还没有合并JSON逻辑。触及“未定义”的部分。
嘿谢谢你的回答。通过使用document.getElementId获取表单值可以正常工作,但使用$(“#searchValue”)。val()获取数据仍然会给出未定义的值。我会仔细看看的。无论如何谢谢! –
它不应该给你未定义的,如果你的脚本中有jquery.min.js – Keerthivasan
我知道有一个错字。谢谢 !你有什么想法如何接收JSON数据到一个jsp页面?如果你在我的struts.xml中看到,如果它是成功的,我将它定向到dummy.jsp。该页面只包含'
'我将它设置在我的操作类中。现在我需要在dummy.jsp中显示它。怎么做? –