如何在 magnolia CMS 中配置自定义 servlet
Posted
技术标签:
【中文标题】如何在 magnolia CMS 中配置自定义 servlet【英文标题】:How to configure custom servlet in magnolia CMS 【发布时间】:2014-05-28 05:08:37 【问题描述】:I am trying to do registration example in magnolia. I have a registration form, on submission of form control should be transferred to my own written servlet.
snippet for form :
<body>
<form action="./register" method="post">
Name:<input type="text" name="name"><br />
Email Id:<input type="text" name="email"><br/>
<input type="submit" value="Register">
</form>
</body>
注册servlet类:
public class Registration extends HttpServlet
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
// TODO Auto-generated method stub
System.out.println("This is registration servlet");
我已经配置了模块描述符:
<servlets>
<servlet>
<name>RegistrationServlet</name>
<class>com.rbt.registration.Registration</class>
<comment>registration servlet</comment>
<mappings>
<mapping>/register</mapping>
</mappings>
</servlet>
</servlets>
我还配置了模板定义。 但是当我点击提交按钮时。它显示找不到资源的错误。 请帮帮我。
【问题讨论】:
【参考方案1】:在您的模板中,在为表单编写 html 时,您还可以使用action="$ctx.contextPath/register"
将表单响应定向到 servlet 正在侦听的 uri。
另外请转到config:/server/filters/servlets/
并验证RegistrationServlet
是否正确添加到那里。
Magnolia Forum
HTH,一月
【讨论】:
【参考方案2】:您在模块描述符中配置的映射将与您的上下文路径相关。例如。如果您的基本 url 是 @987654321@
('public' 是您的上下文路径),那么您的 servlet 将响应 @987654322@
。
检查该 url 是否与您的表单提交到的 url 匹配。 action="./register"
是相对路径,将取决于包含表单的页面的路径。
【讨论】:
以上是关于如何在 magnolia CMS 中配置自定义 servlet的主要内容,如果未能解决你的问题,请参考以下文章
在 Magnolia CMS 中注册自定义 VirtualUriMapper