现在的情况
我们目前使用applet执行一些操作,然后重定向当前页面.在其核心中,您可以看到applet如下:
public class ExampleApplet extends Applet {
@Override
public void init() {
Button redirect = new Button("Redirect");
this.add(redirect);
final String target = this.getParameter("targetPage");
redirect.addActionListener((ActionEvent e) -> {
try {
getAppletContext().showDocument(new URL(target), "_parent");
} catch (MalformedURLException ex) {}
});
}
}
Run Code Online (Sandbox Code Playgroud)
以最简单的方式调用applet:
<applet code="com.example.applet.ExampleApplet.class" archive="${appletUrl}" width="100" height="30">
<param name="targetPage" value="http://localhost:8080/applet/"/>
</applet><br/><br/>
Run Code Online (Sandbox Code Playgroud)
其中${appletUrl}返回applet JAR的位置.
所以applet只不过是一个调用getAppletContext().showDocument(new URL(target), "_parent");刷新当前页面的简单按钮.这已经很长时间正确地完成了它的工作.现在这是问题所在.
移民
众所周知,Chrome不支持Applets.从那时起搁置一段时间IE并FireFox仍然支持他们.在2016年底,他们也将不再支持他们.所以我们决定使用JWS和迁移applet JNLP.
迁移此简单重定向按钮示例将提供以下html代码段和JNLP文件:
<a href="${jnlpUrl}">Launch JNLP</a> …Run Code Online (Sandbox Code Playgroud) 我很新Jackson,但我偶然发现了以下问题:
我想将一个简单的对象序列化为其字段数组.所以考虑以下课程:
public class UserModel {
private String id;
private String firstName;
private String lastName;
private String email;
private String company;
}
Run Code Online (Sandbox Code Playgroud)
我得到以下json:
{
"id":"cec34b58",
"firstName":"foo",
"lastName":"bar",
"email":"foo@bar.com",
"company":"FooBar"
}
Run Code Online (Sandbox Code Playgroud)
但我想要的是以下内容:
[
"cec34b58",
"foo",
"bar",
"foo@bar.com",
"FooBar"
]
Run Code Online (Sandbox Code Playgroud)
如果有更简单的方法,我想避免使用自定义序列化程序.阅读Jackson Annotations,我没有立即看到允许立即转换模型的东西.谷歌只建议将Java序列化为Collectionsjson,但是从Java Object到json数组都没有.