在ftl中的java脚本中访问动作类映射

时间:2014-02-06 10:45:44

标签: javascript struts2 freemarker

我们需要访问struts动作类中定义的实例映射(它有get / set方法)。我们需要动态填充该地图。我们生成代码以在运行时使用基于某些用户输入的java脚本填充地图。我们使用freemarker作为模板。

ftl中的Java脚本代码如下所示:

innerHTML += '<input class="isn" onChange="validateTag(this);" name="serialsInp[\'' + listing + '\']" value=""/>';

此处serialsInpHashMap<String, String>listing为java脚本变量。上面的代码呈现文本字段。期望是当用户在此文本字段中输入文本时,serialsInp应填充“listing”作为键,用户输入值作为值。

这是在javascript / ftl中访问地图的正确方法吗?

1 个答案:

答案 0 :(得分:1)

解决!问题是表格参数。我们案例中的地图密钥包含' - ',由于安全原因,它不被允许。

一旦我们通过在struts.xml中添加以下代码来更改'params'拦截器以允许参数名中的' - ',问题就解决了

            <interceptor-ref name="params">
                <param name="acceptParamNames">\w+((\.\w+)|(\[\d+\])|(\['\w+(\-\w+)*'\]))*</param>
            </interceptor-ref>

参考202&amp; post