gpt4 book ai didi

java - AngularJs 向 Struts2 发送值

转载 作者:行者123 更新时间:2023-11-30 06:11:08 24 4
gpt4 key购买 nike

我在 struts2 Action 中从 angularJS 接收值时遇到了一些问题。

目标是接收轮播中当前图像的索引。

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>

如果我调试操作,我可以看到我没有从 angular 接收到任何值。

更新改了json请求,改了get和set的名字,参数也改成了string。

现在我收到空值。仍然效果不佳。

更新 2现在展示最终结果。现在工作正常。

最佳答案

这是我将数据传递给 Struts 操作的方式,请引用此内容。

$scope.submitForm = function() {

var params = {
"name" : $scope.name,
"username" : $scope.username,
"email" : $scope.email
};

var data = angular.toJson(params);
$http( {
method : 'POST',
url : '/angular/studentForm.action',
data : 'value=' + data,
headers : {
'Content-Type' : 'application/x-www-form-urlencoded'
}
}).success(function(data) {
if (data.errors) {
$scope.errorname = data.errors.name;
$scope.errorUsername = data.errors.username;
$scope.erroremail = data.errors.email;
} else {
console.log(data);
$scope.message = data;

}
}).error(function(data, status) {
return false;
});
};
});

您必须将参数更改为字符串,因为 angular js 仅适用于 json 数据。

关于java - AngularJs 向 Struts2 发送值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34613278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com