Я использую liferay 6.2 CE ga4 и используя Maven (MVC).Как использовать портфолио Ajax в весне?
Вот мой код:
Страна:
<select id="country" name="country">
<option value="select">Select Country</option>
<option value="india">India</option>
<option value="usa">USA</option>
</select>
State:
<select id="state" name="state">
</select>
<script type="text/javascript">
$(document).ready(function(){
$("#country").change(function() {
var country = $(this).val();
$.ajax({
url: "${findState}" ,
type: 'POST',
datatype:'json',
data: "countryName="+country ,
success: function(data){
$('#state').html('');
$.each(content, function(i, state) {
$('#state').append($('<option>').text(state.name).attr('value', state.stateId));
});
}
});
});
});
</script>
Вот мой Java:
@ResourceMapping(value="findState")
public void findStateForCountry(ResourceRequest request, ResourceResponse response) throws IOException {
String countryName = ParamUtil.getString(request, "countryName");
System.out.println("name="+countryName);
String name = request.getParameter("countryName");
System.out.println("name2="+name);
//var countryName and var name allways NULL
JSONArray stateArray = JSONFactoryUtil.createJSONArray();
JSONObject stateObject,stateObject2;
if(countryName.equalsIgnoreCase("india"))
{
stateObject = JSONFactoryUtil.createJSONObject();
stateObject.put("stateId", "1");
stateObject.put("name", "Delhi");
stateObject2 = JSONFactoryUtil.createJSONObject();
stateObject2.put("stateId", "2");
stateObject2.put("name", "Gujrat");
}
else{
stateObject = JSONFactoryUtil.createJSONObject();
stateObject.put("stateId", "21");
stateObject.put("name", "LA");
stateObject2 = JSONFactoryUtil.createJSONObject();
stateObject2.put("stateId", "22");
stateObject2.put("name", "California");
}
stateArray.put(stateObject);
stateArray.put(stateObject2);
response.getWriter().println(stateArray);
}
Я хочу использовать параметр пасс, но он не работает. Я использую это:
String countryName = ParamUtil.getString(request, "countryName");
И это:
String name = request.getParameter("countryName");
Чтобы получить параметр, но они всегда есть NULL
.
Что-то не так с моим кодом?
Ответ есть:
Используйте это в you'r LifeRay-portlet.xml
<portlet> <portlet-name>welcome</portlet-name> <requires-namespaced-parameters>false</requires-namespaced-parameters> </portlet>