有一个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
返回
修改资源
修改资源的父级
答案 0 :(得分:2)
首先,我相信你指的是 PageContext 下的 PageContent 。如果要使用Sling Post Servlet,则需要更改操作。
${currentPage.path}
指的是Page节点,而不是PageContent节点。页面节点对属性有非常严格的限制,你不能放任何自定义道具,比如 testKey 。因此,要使代码正常工作,只需将action
属性替换为${currentPage.path}/jcr:content
即可。
答案 1 :(得分:1)