JavaScript属性未定义。什么?

时间:2018-06-15 09:28:17

标签: javascript

我从JSP页面中的JavaScript(AngularJS)中的会话范围中读取了一个User对象(attrs:id,userName)。它是成功的,因为它出现在控制台中。但是当我想访问它的属性时,浏览器会说这些属性是未定义的。

JS代码:

<script type="text/javascript">
    var app = angular.module( "appUserOrders", [] );
    app.controller( "ctrlUserOrders", 
    function ($scope, $http ) 
    {
        $scope.user = '<%= session.getAttribute("User") %>';
        console.log( $scope.user );
        console.log( $scope.user.id );
        console.log( $scope.user.userName );
    } 
    );

</script>

控制台内容:

User(id=1111, userName=TestUserName) userorders.html:29 undefined userorders.html:30 undefined

如何访问其属性值,因为user.id调用需要REST作为@PathVariable。为什么不起作用? session.getAttribute( key )回馈了什么?

提前感谢您的回复!

1 个答案:

答案 0 :(得分:0)

在有用的评论之后,我在名为User的{​​{1}}类中创建了一个方法,并将其结果放入会话中。它工作正常,但我改变了主意,因为在会话范围内没有JSON字符串的位置。因此,我从toJSONString()页面userOrders.jsp HTTP方法GET发送userID作为模型属性,而我根本不使用controller

控制器方法:

session

JavaScript的:

@RequestMapping( value = "/userorders", method = RequestMethod.GET )
public String userOrdersHandler_GET( Model model_ )
{
  // Constant value just for test cases
  model_.addAttribute( "userID", 1111 );
  return "ordering/userorders";
}

感谢您的回复!