在AEM / CQ中使用post方法提交表单数据时出错

时间:2016-01-20 12:39:46

标签: cq5 aem

有一个cq页面,页面中有很多组件。在一个组件中,我们有HTML表单代码。提交表单数据后,我需要在PageContext中设置所有值,并在同一页面的其他组件中使用这些值。

为了实现这一点,我创建了名为“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> 

点击提交按钮后出现错误

处理/ content / myPage /

时出错

状态
500 信息 javax.jcr.nodetype.ConstraintViolationException:没有匹配的属性定义:testKey = collapsed 位置/内容/ myPage / 家长位置/内容 路径
/内容/ MYPAGE / 参考者http://localhost:4502/content/myPage.html ChangeLog



返回

修改资源

修改资源的父级

2 个答案:

答案 0 :(得分:2)

首先,我相信你指的是 PageContext 下的 PageContent 。如果要使用Sling Post Servlet,则需要更改操作。

${currentPage.path}指的是Page节点,而不是PageContent节点。页面节点对属性有非常严格的限制,你不能放任何自定义道具,比如 testKey 。因此,要使代码正常工作,只需将action属性替换为${currentPage.path}/jcr:content即可。

答案 1 :(得分:1)