2010-12-01 2 views
2

코드는 다음과 같이이다 :spring mvc 3에서 대상보기 이름을 구성 할 수 있습니까?

@Controller 
@RequestMapping(value="/test") 
public class TestController { 
........   
    @RequestMapping(method=RequestMethod.GET) 
    public String getCreateForm(Model model) { 
     model.addAttribute(new AccountBean()); 
     return "newtest"; 
    } 
......... 

는 "newtest는"하드 코딩 된 뷰 이름입니다. XML 스타일의 Spring 설정 파일로 구성 할 수 있습니까? 고맙습니다!

답변

4

실제 질문은 XML을 통해 자동 발견 된 빈의 속성을 구성하는 방법입니다.

@Controller 
@RequestMapping(value="/test") 
public class TestController { 
    private String viewName = "newtest"; 

    public void setViewName(String viewName) { 
     this.viewName = viewName; 
    } 

    @RequestMapping(method=RequestMethod.GET) 
    public String getCreateForm(Model model) { 
     model.addAttribute(new AccountBean()); 
     return viewName; 
    } 
} 
:

당신은 (autodiscovered 콩의 이름이 지정되지 않은 경우,이 소문자에 첫 문자 클래스 명으로 가정한다) 한 autodiscovered과 동일한 이름을 가진 <bean>를 정의하여 그것을 할 수 있습니다

.

<bean id = "testController" class = "TestController"> 
    <property name = "viewName" value = "oldtest" /> 
</bean> 

또 다른 옵션은 SpEL을 함께 @Value을 사용하는 것입니다

@Value("#{testViewName}") private String viewName; 

을 식입니다.

<bean id = "testViewName" class = "java.lang.String"> 
    <constructor-arg value = "oldtest" /> 
</bean> 

또는 재산 자리

@Value("${testViewName}") private String viewName; 

.

<context:property-placeholder location = "viewnames" /> 

viewnames.properties

:

testViewName=oldtest 
1

음, 거기에 문자열을 반환 할 수 있습니다. 예 - 구성 할 수 있습니다.

업데이트 : 구성 방법에는 여러 가지가 있으며 그 중 하나는 PropertyPlaceholderConfigurer@Value 주석의 조합입니다.하지만 이미 axtavt가 적용되었습니다.

+0

죄송합니다, 나는 내가 정말로 의미하는 것은 그것이 XML 스타일 Spring 설정 파일에 설정 한 것입니다 언급 한 것이다. – Bobo

관련 문제