Javascript 访问ftl中java脚本中的操作类映射

Javascript 访问ftl中java脚本中的操作类映射,javascript,struts2,freemarker,Javascript,Struts2,Freemarker,我们需要访问struts操作类中定义的实例映射(它有get/set方法)。我们需要动态填充该地图。我们根据一些用户输入生成代码,在运行时使用java脚本填充映射。我们使用freemarker作为模板 ftl中的Java脚本代码如下所示: innerHTML += '<input class="isn" onChange="validateTag(this);" name="serialsInp[\'' + listing + '\']" value=""/>'; innerHTML

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

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

innerHTML += '<input class="isn" onChange="validateTag(this);" name="serialsInp[\'' + listing + '\']" value=""/>';
innerHTML+='';
这里的
serialsInp
HashMap
listing
是java脚本变量。上面的代码呈现一个文本字段。当用户在此文本字段中输入文本时,serialsInp应该以“listing”作为键,以用户输入的值作为值填充


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

已解决!问题是形状参数。本例中的映射键包含“-”,由于安全原因,这是不允许的

通过在struts.xml中添加以下代码,将“params”拦截器更改为允许参数名中使用“-”,问题就解决了

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

\w+(\.\w+)|(\[\d+\])|(\['\w+(\-\w+*'\]))*

引用&

脚本在客户端执行,即使它们是javascripts。freemarker标记/变量在服务器端被嵌入,但是您在客户端生成freemarker代码,太晚了!