html - 如何修复 Struts 2 <s :checkbox> tag? 中的 Angular 语法解析器错误

标签 html jsp struts2 struts-tags

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

我有一个Java对象formboolean名为 paid 的属性.

当我写的时候:

<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 语法解析器错误,该错误将我引导至此页面:

syntax error page

提示表达式错误。

如果我写:

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

没有报告错误。我猜这是因为 Struts 标签以 < 开头,这在 Angular 中不受欢迎。

但是,这一行不会报告错误:

<select ng-model="estadoId" 
        ng-init="estadoId=<s:property value='%{form.estadoId}'/>"
        name="form.estadoId" id="form.estadoId" 
        value="<s:property value='%{form.estadoId}' />"    >

所以,AngularJS 正在提示 <>在Struts 2 中?或者,我也不允许使用 <s:...>在另一个里面<s:...> ?如果是后者,为什么 Complaning Angular 而不是 Struts 2?

最佳答案

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

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

在第二个中,您使用 OGNL 做得很好,但是您省略了 model =部分:

<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 标记(如 <select> 示例中所示,这是一个标准 HTML 标记,而不是 <s:select> ,因此不会发生标记嵌套):

<input type="check" name="xxxxx" 
        ng-model="model" 
         ng-init="model = %{form.paid}" />

注意:在这种情况下,您应该在每个复选框下创建一个隐藏参数来模拟 <s:checkbox>标记行为并将 Checkbox Interceptor快乐。

关于html - 如何修复 Struts 2 <s :checkbox> tag? 中的 Angular 语法解析器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31835226/

相关文章:

java - Spring MVC 相当于 Struts for I18N 的 getText()

java - 我在网络应用程序中所做的事情是否可以轻易被黑客攻击或破坏?

android - 我如何从 HTML WebView 中的标签获取信息?

java - css上的Spring资源映射问题

java - 如何在 JSP 中包含 HTML?

java - 有没有一种简单的方法可以使用 Apache Web 服务器运行 Java servlet?

javascript - 水平滚动,检测相对于 anchor 的滚动位置

javascript - 具有悬停效果的重叠图像

javascript - 获取IE对象来控制flash按钮

javascript - Struts 2 JQuery 日期选择器问题