@Test public void Date型のプロパティエディタが検索できる() { registry = new ExtendedServletRequestDataBinder(new TestBean()); registrar = new JseDefaultDatePropertyEditorRegistrar(); registrar.registerCustomEditors(registry); PropertyEditor editor = registry.findCustomEditor(Date.class, "birth"); assertThat(editor, is(notNullValue())); assertThat(editor.getClass().getName(), is(DateEditor.class.getName())); }
@Test public void allowEmptyプロパティの設定が反映される() { registry = new ExtendedServletRequestDataBinder(new TestBean()); registrar = new JseDefaultDatePropertyEditorRegistrar(); registrar.setAllowEmpty(true); registrar.registerCustomEditors(registry); PropertyEditor editor = registry.findCustomEditor(Date.class, "birth"); DateEditor dateEditor = (DateEditor)editor; dateEditor.setAsText(null); assertThat(dateEditor.getAsText(), is("")); }
@Test public void patternプロパティの設定が反映される() { registry = new ExtendedServletRequestDataBinder(new TestBean()); registrar = new JseDefaultDatePropertyEditorRegistrar(); registrar.setPattern("yyyy-MM-dd"); registrar.registerCustomEditors(registry); PropertyEditor editor = registry.findCustomEditor(Date.class, "birth"); DateEditor dateEditor = (DateEditor)editor; dateEditor.setAsText("2013-01-01"); assertThat(dateEditor.getAsText(), is("2013-01-01")); }
@Test public void 各タイプに合わせたプロパティエディタ一括登録されていることを確認() { registry = new ExtendedServletRequestDataBinder(new TestBean()); registrar = new JseDefaultNumberPropertyEditorRegistrar(); registrar.registerCustomEditors(registry); PropertyEditor editor = registry.findCustomEditor(Byte.class, "byteP"); assertThat(editor, is(notNullValue())); assertThat(editor.getClass().getName(), is(HalfwidthNumberEditor.class.getName())); editor = registry.findCustomEditor(Short.class, "shortP"); assertThat(editor, is(notNullValue())); assertThat(editor.getClass().getName(), is(HalfwidthNumberEditor.class.getName())); editor = registry.findCustomEditor(Integer.class, "integerP"); assertThat(editor, is(notNullValue())); assertThat(editor.getClass().getName(), is(HalfwidthNumberEditor.class.getName())); editor = registry.findCustomEditor(Long.class, "longP"); assertThat(editor, is(notNullValue())); assertThat(editor.getClass().getName(), is(HalfwidthNumberEditor.class.getName())); editor = registry.findCustomEditor(BigInteger.class, "bigIntegerP"); assertThat(editor, is(notNullValue())); assertThat(editor.getClass().getName(), is(HalfwidthNumberEditor.class.getName())); editor = registry.findCustomEditor(Float.class, "floatP"); assertThat(editor, is(nullValue())); editor = registry.findCustomEditor(Double.class, "doubleP"); assertThat(editor, is(nullValue())); editor = registry.findCustomEditor(BigDecimal.class, "bigDecimalP"); assertThat(editor, is(notNullValue())); assertThat(editor.getClass().getName(), is(HalfwidthDecimalEditor.class.getName())); }
@Test public void allowEmptyプロパティの設定が反映される() { registry = new ExtendedServletRequestDataBinder(new TestBean()); registrar = new JseDefaultNumberPropertyEditorRegistrar(); registrar.setAllowEmpty(true); registrar.registerCustomEditors(registry); PropertyEditor editor = registry.findCustomEditor(Byte.class, "byteP"); editor.setAsText(null); assertThat(editor.getAsText(), is("")); }
private DataBinder bindInternal(HttpServletRequest request, Model model, Object object, String objectName) { final WebBindingInitializer wbi = requestMappingHandlerAdapter.getWebBindingInitializer(); ExtendedServletRequestDataBinder binder = new ExtendedServletRequestDataBinder(object, objectName); wbi.initBinder(binder, new ServletWebRequest(request)); initBinder(binder); binder.bind(request); model.addAttribute(objectName, object); model.addAttribute("org.springframework.validation.BindingResult." + objectName, binder.getBindingResult()); return binder; }
public void test_for_issue() throws Exception { ExtendedServletRequestDataBinder binder = new ExtendedServletRequestDataBinder(new Object()); String json = JSON.toJSONString(binder); System.out.println(json); Assert.assertTrue(json.indexOf("$ref")>=0); }