Html 如何修复Struts 2中的角度语法分析器错误<;s:复选框>;标签?

Html 如何修复Struts 2中的角度语法分析器错误<;s:复选框>;标签?,html,jsp,struts2,struts-tags,Html,Jsp,Struts2,Struts Tags,我在使用AngularJS+Struts 2时遇到了一个奇怪的错误 我有一个Java对象表单,带有一个名为paid的boolean属性 当我写作时: <div class="col-sm-10 form-checkbox"> <s:checkbox name="xxxxx" ng-model="model" ng-init="model = <s:property value = '%{form.paid}' />" th

我在使用AngularJS+Struts 2时遇到了一个奇怪的错误

我有一个Java对象
表单
,带有一个名为
paid
boolean
属性

当我写作时:

<div class="col-sm-10 form-checkbox">
    <s:checkbox name="xxxxx" ng-model="model" 
        ng-init="model = <s:property value = '%{form.paid}' />" 
        theme="simple" />
</div>

我收到FireBug对AngularJS语法分析器错误的投诉,该错误将我引向此页面:

暗示表达错误

如果我写:

<div class="col-sm-10 form-checkbox">
    <s:checkbox name="xxxxx" ng-model="model" 
        ng-init="%{form.paid}" 
        theme="simple" />
</div>

未报告任何错误。我猜这是因为Struts标记以


那么,AngularJS在抱怨Struts 2中的
?或者,我也不允许在另一个
内部使用
?如果是后者,为什么不是Struts 2??

在第一个代码段中,您嵌套了Struts标记,这是一个语法错误:

<s:checkbox name="xxxxx" 
        ng-model="model" 
         ng-init="model = <s:property value = '%{form.paid}' />" 
           theme="simple" />
<s:checkbox name="xxxxx" 
        ng-model="model" 
         ng-init="%{form.paid}" 
           theme="simple" />
正确的版本是两个版本的混合:

<s:checkbox name="xxxxx" 
        ng-model="model" 
         ng-init="model = %{form.paid}" 
           theme="simple" />

否则,您可以使用原始HTML标记(如您的
示例中所示,这是一个标准HTML标记,而不是
,因此不会发生标记嵌套):



注意:在这种情况下,您应该在每个复选框下创建一个隐藏参数,以模拟
标记行为,并让用户满意。

如果帖子包含语法错误,并不意味着这一切都与语法错误有关。本问答涉及更多内容,如动态属性中的OGNL、s:checkbox行为等等。您不能嵌套这样的标记。非法JSP构造与Angular无关。@Dave Newton Como on。我们不能如此孤立地看待这些问题。我们不是在一个论坛上寻找我们在现实生活中遇到的问题吗?很少有“纯粹”的AngularJS或Struts问题。@Faithreper接受答案有什么问题吗?我看到你从未接受过答案,甚至连你自己发布的答案都没有:|要接受答案,只需单击答案左上角的白色V,将其变成绿色即可。。。你也应该考虑回到你的其他问题,接受每一个解决你问题的答案,谢谢。我已经接受了你的回答。
<s:checkbox name="xxxxx" 
        ng-model="model" 
         ng-init="model = %{form.paid}" 
           theme="simple" />
<input type="check" name="xxxxx" 
        ng-model="model" 
         ng-init="model = %{form.paid}" />