gpt4 book ai didi

spring - spring mvc 可以修剪从表单获得的所有字符串吗?

转载 作者:IT老高 更新时间:2023-10-28 13:45:06 25 4
gpt4 key购买 nike

我知道 struts2 默认配置会修剪所有从表单获得的字符串。

例如:

我输入

"   whatever "
在表单中提交,我会得到
"whatever"
字符串已被自动修剪

spring mvc也有这个功能吗?谢了。

最佳答案

使用 Spring 3.2 或更高版本:

@ControllerAdvice
public class ControllerSetup
{
@InitBinder
public void initBinder ( WebDataBinder binder )
{
StringTrimmerEditor stringtrimmer = new StringTrimmerEditor(true);
binder.registerCustomEditor(String.class, stringtrimmer);
}
}

使用 MVC 测试上下文进行测试:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration
public class ControllerSetupTest
{
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;

@Before
public void setup ( )
{
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}

@Test
public void stringFormatting ( ) throws Exception
{
MockHttpServletRequestBuilder post = post("/test");
// this should be trimmed, but only start and end of string
post.param("test", " Hallo Welt ");
ResultActions result = mockMvc.perform(post);
result.andExpect(view().name("Hallo Welt"));
}

@Configuration
@EnableWebMvc
static class Config
{
@Bean
TestController testController ( )
{
return new TestController();
}

@Bean
ControllerSetup controllerSetup ( )
{
return new ControllerSetup();
}
}
}

/**
* we are testing trimming of strings with it.
*
* @author janning
*
*/
@Controller
class TestController
{
@RequestMapping("/test")
public String test ( String test )
{
return test;
}
}

而且 - 正如 LppEdd 所要求的 - 它也适用于密码,因为在服务器端输入 [type=password] 和 input[type=text] 之间没有区别

关于spring - spring mvc 可以修剪从表单获得的所有字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com