2016-01-20 59 views
1

有一個cq頁面,頁面中有很多組件。在一個組件中,我們有HTML表單代碼。提交表單數據後,我需要在PageContext中設置所有值,並在同一頁面上的其他組件中使用這些值。在AEM/CQ中使用post方法提交表單數據時出錯提示

爲了實現這一點,我創建了名爲「MySamplecomponent」的組件。並在所有的HTML代碼如下所示。我也創建了一個POST.jsp在同一個組件下。 Mysamplecompnent.jsp代碼

<%@include file="/libs/foundation/global.jsp"%> 

<% 
    //String collapsed = properties.get("selection",""); 
    String collapsed= request.getParameter("testKey"); 
    out.println("value++"+collapsed); 
String category= request.getParameter("skill"); 
out.println("Category++"+category); 
pageContext.setAttribute("collapsed1",collapsed,PageContext.REQUEST_SCOPE); 

%> 

<form name="form1" id="form1" action="${currentPage.path}.html" method="post"> 
    <input type ="text" name="testKey" id="testKey" value="collapsed" /> 
    <input type ="hidden" name="pathValue" id="pathValue" value="myValue" /> 
    <select name="skill" style="display:block"> 
    <option value="1">Cricket</option> 
     <option value="2">Volley ball</option> 
     <option value="3">Tennis</option> 
</select> 
    <input type="radio" name="ravi" id="radiobutton" value="success" > radiobutton<br> 
     <input id="SubmitButton" name="SubmitButton" type="submit" value="SubmitButton" onclick="javascript:location.href='#'" /> 
</form> 

點擊提交按鈕得到下面誤差

出錯後處理的同時/內容/ MYPAGE/

狀態
消息 javax.jcr.nodetype.ConstraintViolationException :沒有找到匹配的屬性定義:testKey =摺疊 位置/內容/ myPage/ 父位置/內容 路徑
/內容/ MYPAGE/ Referer的http://localhost:4502/content/myPage.html 更新日誌

 

返回

修改後的資源

修改後的資源

回答

2

首先,我相信你的意思是PageContentPageContext中。如果您想使用Sling Post Servlet,則需要更改操作。

${currentPage.path}指的是Page節點而不是PageContent節點。頁面節點對屬性有非常嚴格的限制,你不能放置任何自定義道具,如testKey。因此,爲了使您的代碼正常工作,請將您的action屬性替換爲${currentPage.path}/jcr:content,它將起作用。