我有来自客户端的参数,例如
ids[] = 11
ids[] = 12
ids[] = 21
Run Code Online (Sandbox Code Playgroud)
在服务器端,我有一个Spring控制器,使用以下方法:
@RequestMapping("/delete.x")
public @ResponseBody Map<String, Object> delete(HttpServletRequest request, @RequestParam("ids[]") List<Integer> ids) {
Run Code Online (Sandbox Code Playgroud)
当我尝试迭代id的集合时,如下所示:
for (Integer id : ids) {
Run Code Online (Sandbox Code Playgroud)
我得到如下例外:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
Run Code Online (Sandbox Code Playgroud)
Spring是否将ID的类型更改为List <String>?无论我想如何,我如何避免这个问题并将ID作为整数存储在List中?
使用CDI和JSF2时如何将HTTP请求参数注入bean中?
@RestController
class MyController {
@RequestMapping(...)
public void test(Container container) { ... }
}
Run Code Online (Sandbox Code Playgroud)
Spring默认使用Dot-Notation反序列化嵌套的@RequestParam:
class Container {
A a;
}
class A {
String val;
}
Run Code Online (Sandbox Code Playgroud)
适用于:
http://.../myController?a.val=foo
Run Code Online (Sandbox Code Playgroud)
但对于地图,它使用方形括号表示法:
class Container {
Map<String, String> a;
}
Run Code Online (Sandbox Code Playgroud)
适用于:
http://.../myController?a[val]=foo
Run Code Online (Sandbox Code Playgroud)
当使用JavaScript时,HashMap和嵌套对象之间当然没有区别,因此所有内容都将使用Dots 或 Square-Brackets进行序列化.
如何/我在哪里可以告诉Spring(或Spring启动,如果这更容易)使用点符号(或方括号中)为两个,嵌套对象和地图?
或者,有什么理由说Spring会对这些类型产生影响吗?
spring spring-mvc http-request-parameters spring-boot spring-4
某些页面可以接收名为"P1"的特定请求参数:
page.do?P1=value1
Run Code Online (Sandbox Code Playgroud)
现在,scriptlet正在测试请求参数是否存在,如果P1是"value1",则会在页面上呈现一些信息.
我想使用Struts标签重写它,而不是使用scriptlet.
你能告诉我一些关于使用什么的提示吗?
替代scriptlet是这样的:
<%
String p1 = request.getParameter("P1");
if ("value1".equals(p1)) {
//do something
}
%>
Run Code Online (Sandbox Code Playgroud) 我有一个带复选框的表,用户可以检查并删除表中的那一行.我有一切工作,但如果用户检查两个框,它只检索表上的第一个.
<tr>
<td><input type="checkbox" name="id" value="${user.id}" /></td>
<td><c:out value="${user.name}" /></td>
<td><c:out value="${user.email}" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
这只是我的HTML的一个例子.这是我的servlet的一部分.
String id = request.getParameter("id");
Run Code Online (Sandbox Code Playgroud)
所以,再次,我可以选择第一个值,但我无法在同一个表上删除多个行.有没有我可以使用的功能或类似的东西?谢谢!
我在所有<h:inputText>字段中插入的值都有问题.某些字符未以正确的方式编码.例如,如果我ciò输入输入字段,我会得到ciò.
如何允许用户插入带有这些字符的文本并正确保存?不在DB编码中的问题,因为在将其插入DB之前我已经有错误的值.
我正在使用带有Facelets和GlassFish的JSF 2作为应用程序服务器.
jsf glassfish utf-8 character-encoding http-request-parameters
我遇到的问题与在GlassFish中将JSF输入提交值的设置请求字符编码设置为UTF-8相同,提交的值以Mojibake形式到达.但是,答案是针对GlassFish而我正在使用JBoss AS 7.
我已经指定了JDBC连接URL以使用UTF-8:
jdbc:mysql://localhost:3306/mydb?useUnicode=yes&characterEncoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
在我的JSF页面顶部:
<?xml version='1.0' encoding='UTF-8' ?>
Run Code Online (Sandbox Code Playgroud)
如何在JBoss AS 7中解决同样的问题?或者更好,以更通用的方式使其适用于所有服务器?
我尝试了最后一个版本的JavaServer Faces 2.2(Mojarra 2.2.4)并注意到以这种不受欢迎的方式更改了我的查询字符串:
page.jsf?jftfdi=&jffi=
Run Code Online (Sandbox Code Playgroud)
代替
page.jsf
Run Code Online (Sandbox Code Playgroud)
我发现它是新的JSF 2.2功能.但这些查询参数(jftfdi,jffi)破坏了我对SEO友好的网址.我该如何禁用它?
我的Spring MVC Web应用程序中有很多控制器,并且有一个参数mandatoryParam可以说它必须存在于Web应用程序的所有请求中.
现在我想让我的web层和服务层中的所有方法都可以使用该param值.如何有效地处理这种情况?
目前我正在以这种方式处理它:
我有一个CDI托管bean,我想将请求参数设置为托管属性:
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
@Named
@RequestScoped
public class ActivationBean implements Serializable {
@ManagedProperty(value="#{param.key}")
private String key;
@ManagedProperty(value="#{param.id}")
private Long id;
// Getters+setters
Run Code Online (Sandbox Code Playgroud)
domain/activate.jsf?key=98664defdb2a4f46a527043c451c3fcd&id=5但是,URL是永远不会设置和保留的属性null.
这是怎么造成的,我该如何解决?
我知道我可以从ExternalContext下面手动抓取它们:
Long id = Long.parseLong(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"), 10);
String key = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("key");
Run Code Online (Sandbox Code Playgroud)
但是,我宁愿使用注射剂.
jsf cdi managed-bean http-request-parameters managed-property
jsf ×4
spring ×3
cdi ×2
spring-mvc ×2
utf-8 ×2
flow-scope ×1
glassfish ×1
java-ee ×1
jsf-2 ×1
jsf-2.2 ×1
jsp ×1
managed-bean ×1
mojarra ×1
servlets ×1
spring-4 ×1
spring-boot ×1
struts ×1
taglib ×1