小编par*_*yle的帖子

通过Ajax调用使用Struts 2的HTTP数组参数

我在向Struts 2动作类发送数组参数时遇到问题.我正在使用struts 2.1.8.1.

这是一些示例代码:

public class MyAction extends ActionSupport {

    private String[] types;

    public String execute() {
        return SUCCESS;
    }

    public String[] getTypes() {
        return types;
    }

    public void setTypes(String[] types) {
        this.types = types;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是通过jquery ajax方法发送数组时:

$.ajax({
    type: 'POST',
    url: 'Myaction.action',
    data: {
        types: ["this", "is", "a", "test"]
    }
});
Run Code Online (Sandbox Code Playgroud)

导致异常发生:

ognl.ParseException: Encountered " "]" "] "" at line 1, column 7.

如何使用jQuery将数组发送到我的Struts2动作类?我需要包含拦截器的某些内容吗?或者jQuery中有一个选项可以删除它吗?

我也遇到了jQuery UI Sortable控件的这个问题,但是我用正则表达式解决了这个问题,删除了"[]"字符.我想避免这种情况,因为这个解决方案困扰着我.我想我可以自己构建字符串,而不是使用对象表示法,但除非你能说服我,否则我想使用对象表示法.

ajax jquery struts2 type-conversion

9
推荐指数
1
解决办法
6036
查看次数

Ajax在元素列表上使用不显眼的javascript请求

所以我真的更喜欢使用不引人注目的javascript来内联javascript.我觉得使用它要容易得多.

我一直遇到的问题是,我不知道如何获取我想要使用的每个特定元素的数据.

例如:

我有一个列表,我生成以下HTML(这是伪代码)

<%for e in list%>
    <a href="#" class="delete"><%=e%></a> <!-- <%= e.id %> ??-->
<%end%>
Run Code Online (Sandbox Code Playgroud)

所以我想将javascript附加到每个将调用ajax帖子的<a>标签上,但是我需要"id"来从后端删除正确的元素.

$('a.delete').click(function() {
    // Ajax request using "e.id"
});
Run Code Online (Sandbox Code Playgroud)

我试过的一些事情:

  1. 构建href并使用该attr方法将ajax请求发送到该URL.(对于POST请求我真的不喜欢这个,但确实有效.
  2. 使用rel属性来存储我需要的数据.
  3. 使用HTML5 data属性.(我不知道所有浏览器的可用性,因为我们需要支持IE6 +我不喜欢这个想法.)
  4. 为每个<a>标签创建一个表单并将其序列化.(这似乎是很多额外的代码,但它看起来也很干净.)

实现这一目标的最佳做法是什么?

javascript ajax jquery

7
推荐指数
1
解决办法
285
查看次数

HTTPS登录不将JSESSIONID保存在cookie中

我们最近更改了登录以使用HTTPS,我们遇到了登录问题.

登录后,用户将被重定向到未加密(HTTP)页面.当它到达此页面时,站点将检查用户是否已登录.它会创建一个新会话,并且看起来用户未登录,因此我们的用户被重定向到登录页面.如果用户再次登录,它将起作用.

Cookie不会设置为仅https,但似乎它们不适用于http页面.

有谁知道为什么会发生这种情况.

编辑:

我应该提到显示登录的页面位于不同的URL上.(运行tomcat实例的计算机有一个登录页面,但营销站点在wordpress安装上并使用不同的域).

我无法使用HTTP请求第一种方法来设置cookie,因为默认的Internet Explorer设置会阻止保存会话cookie.

security cookies https tomcat http

5
推荐指数
1
解决办法
6719
查看次数

Struts2使用数据库进行国际化

我们有一个相当大的应用程序,具有大量的动态内容.无论如何强制struts使用数据库进行i18n查找而不是属性文件?

如果有人曾经用动态内容做过i18n,我会开放其他方式来解决这个问题.

java localization struts2 internationalization

5
推荐指数
1
解决办法
2300
查看次数

使用继承的Struts2 Convention插件结果

有没有办法让struts2约定插件使用超类的结果?

我正在尝试创建一个通用的CRUD,如果子类中没有实现,则使用一般结果.这可能吗?

java inheritance struts2

5
推荐指数
1
解决办法
845
查看次数

Struts2将空字符串参数转换为"int"

如何使用Struts2将空字符串转换为int.当应用程序遇到没有值的此参数时,例如从空文本字段,它会抛出以下异常.

java.lang.NoSuchMethodException:
com.XXXXXXXXXXXX.setID([Ljava.lang.String;)
Run Code Online (Sandbox Code Playgroud)

其中ID是整数,URL是:

Something.action?ID =&其它= RAWR

有没有办法在不使用Integer(类)的情况下执行此操作?我必须写一个类型转换器吗?

java struts2 type-conversion

4
推荐指数
1
解决办法
4798
查看次数

javax.xml.bind.Marshaller使用十进制值编码unicode字符

我有一个需要生成xml的服务.目前我使用jaxb和Marshaller使用StringWriter创建xml.

这是我得到的当前输出.

<CompanyName>Bakery é &amp;</CompanyName>
Run Code Online (Sandbox Code Playgroud)

虽然这可能适用于某些Web服务,但我需要转义特殊的unicode字符.令我的xml的服务需要有这样的服务:

<CompanyName>Bakery &#233; &amp;</CompanyName>
Run Code Online (Sandbox Code Playgroud)

如果我使用StringEscapeUtils,commons-lang我最终会得到像下面这样的东西.这个也不起作用:

<CompanyName>Bakery &amp;#233; &amp;amp;</CompanyName>
Run Code Online (Sandbox Code Playgroud)

是否有一些Marshaller设置允许我将这些特殊字符编码为十进制值?

java xml axis2 utf-8

4
推荐指数
2
解决办法
2万
查看次数