2013-10-08 3 views
0

안녕하세요, JSP에서 액션으로 폼을 전달하려고합니다. URL (? par = value ...)에 매개 변수를 전달하면 양식이 올바르게 컴파일되지만 제출 및 양식 값을 사용하면 양식이 올바르게 컴파일되지 않습니다.Struts가 비어 있습니다.

모든 것이 올바르게 설정되었다고 생각하지만 뭔가를 놓치고 있어야합니다.

다른 비슷한 게시물을 이미 검색했지만 해결책을 찾지 못했습니다.

문제는 "새로운"작업 방법에 도착하는 양식이 비어 있다는 것입니다.

struts.config.xml :

<form-bean name="EsempioForm" type="com.forms.EsempioForm"/> 
<action name="EsempioForm" parameter="method" input="/pages/esempio.jsp" path="/esempio" scope="request" type="com.EsempioAction"> 
<forward ... /> 
</action> 

esempio.jsp :

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 
... 
<html:form action="/esempio"> 
<input type="hidden" id="method" name="method" value="new"/> 
<html:text property="desc" disabled="true" /> 
<html:submit styleClass="button">record</html:submit> 
</html:form> 

EsempioAction.java

public ActionForward new(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 
    ... 
    EsempioForm esempioForm = (esempioForm) form; 
    ... 
    return mapping.findForward(...); 
} 

사람이 좀 도와 주시겠습니까? 조언을 주셔서 대단히 감사합니다.

+0

컴파일 오류도 공유합니다. – gyan

+0

컴파일 오류가 없습니다. 단순히 양식이 가치가있는 동안 비어 있습니다. – Enrico

답변

2

대신 <html:hidden property="method" value="new" />을 사용하십시오.

편집 :

disabled="true" 비활성화 필드를 제출 양식에 게시하지 않습니다. 제출하려면 읽기 전용으로 만드십시오.

+0

ansewr에 감사드립니다. 그러나 숨겨진 매개 변수가 올바르게 전달됩니다. 실제로 "새로운"메소드가 실행됩니다. 문제는 다른 patamethers에 관한 것입니다. 예를 들어 빈 페이지는 "desc"로, 반면 JSP 페이지에서는 올바른 값을가집니다. – Enrico

+0

답변을 편집하십시오. –

+0

고맙습니다. 맞습니다. 장애가있는 propery는 문제를 일으켰고, javascript 내 다른 오류로 인해 그것을 찾을 수 없습니다. 고맙습니다. – Enrico

1

<html:form action="/esempio">에서 <html:form action="/esempio" method="POST">으로 변경하고 다시 시도하십시오.

편집 1 : 속성 desc가 전달되지 않습니까?

disabled = "true"(의심스러운) 속성과 관련이 있습니까?

+0

GET 또는 POST가 어떻게 다른가요? –

+0

GET은 UR1에서 데이터를 가져오고 POST는 본문 게시물에서 데이터를 가져옵니다. 그것은 HTTP 요청에서 서버로 데이터가 전송되는 방식에 차이가 있습니다. 더 많은 것을 읽으십시오 http://www.w3schools.com/tags/ref_httpmethods.asp – gyan

+0

그렇습니다 그러나 무엇이 숨겨 지은 매개 변수가 GET를 위해 통과되지 않으며 POST를 위해 통과 될 것입니다. 나는 당신이 문제를 해결하는 대답을합니까? 그렇다면 어떻게? –

0

html 양식을 통해 전달하려는 속성은 양식 bean 클래스에 있어야합니다. <input type="hidden" id="method" name="method" value="new"/>을 사용하여 숨겨진 값을 전달할 때를 제외하고는 항상 폼의 변수에 대한 모든 속성에 대한 매핑이 있어야합니다. 이 경우 양식에 해당 매핑이 필요하지 않습니다!

+0

전달하려고하는 속성이 폼 bean 클래스에 있습니다. – Enrico

관련 문제