У меня возникли проблемы с получением значения от angularJS в действиях struts2.AngularJs посылает значение Struts2
Целью является получение указателя текущего изображения в карусели.
selectArm.jsp
var app = angular.module('menuAPP', ['ui.bootstrap']);
app.controller('mainController', function($scope, $http, $window, $location) {
$scope.hideError=true;
$scope.show = function() {
$scope.currentIndex = $('div.active').index() + 1;//Carousel index
var params = "NSlider :"+ $scope.currentIndex;
var data = angular.toJson(params)
$http({
method: 'post',
url: 'showArm',
data: 'NSlider =' + data
}).success(function(response)
{
post("formShowBrazo");
});
};
ArmAction.java
import javax.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
public class BrazoAction implements Action
{
private static final Logger log = LogManager.getLogger(BrazoAction.class);
private String NSlider;
public String execute() throws Exception {
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("forward","sBrazo");
String aux = NSlider.split(":")[1]; //Receive "NSlider : {int}"
session.setAttribute("id_brazo", aux);
return SUCCESS;
}
public String getNSlider() {
return NSlider;
}
public void setNSlider(String NSlider) {
this.nSlider = NSlider;
}
}
Этот JSP должен показать, индекс выбранного изображения в карусели.
showArm.jsp
<body>
<script src="lib/threejs/three.min.js"></script>
<script src="lib/threejs/OrbitControls.js"></script>
<script src="lib/threejs/dat.gui.min.js"></script>
<script src="lib/threejs/stats.min.js"></script>
<script src="js/webGL.js"></script>
<%
out.println(session.getAttribute("id_brazo"));
%>
<div id='container' width=800, height=600>
</body>
Если отладить действие, я могу видеть, что я не получаю никакого значения от угловой.
UPDATE Изменено петиция json, изменилось имя get и set, а также изменено, чтобы ввести параметр.
Теперь я получаю нулевое значение. Все еще не работает.
ОБНОВЛЕНИЕ 2 Теперь покажите окончательный результат. Теперь работает отлично.
Измените получателя и сеттер на 'setNSlider' или измените имя переменной. –