0

スリングサーブレットで処理される単純な html フォームを作成しようとしています。これは、いくつかの入力フィールドを持つ非常に基本的なフォームであり、私の Java クラスは非常に単純です。私がやろうとしているのは、フォームからの値をエラー ログに記録することだけです。代わりに、単に何も起こりません。私は何か小さなものを見逃しているか、単に盲目であるに違いありません.

フォーム html

<form name="" method="POST" action="/apps/form">
 <input id="firstName" type="text" name="firstName" />
 <input id="phoneNumber" type="text" name="phoneNumber" />          
 <input type="submit" name="submit" value="submit">
</form>

Java クラス

@Component(immediate=true, metatype=false, label="FORM SERVLET")

@Properties({
@Property(name="sling.servlet.methods", value={"POST"}),
@Property(name="sling.servlet.paths", value={"/apps/form"}),
@Property(name="sling.servlet.selectors", value={"form"}),
@Property(name="sling.servlet.extensions", value={"html"})
})

public class FormServlet extends SlingSafeMethodsServlet {

    private final Logger log = LoggerFactory.getLogger(this.getClass().getName());

    protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException
    {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    String name = request.getParameter("firstName");
    String phone = request.getParameter("phoneNumber");

    out.println(name);
    out.println(phone);

log.error("the chat component is loaded first name" + name + phone);

}

}

4

2 に答える 2

1

サーブレットを特定のパスに登録できます。その場合、拡張子とセレクターは無関係です。通常は /bin ディレクトリの下にパスを登録します

/apps/form が存在する場合は、パスではなくその resourceType に応答するようにサーブレットを登録する必要があります。例えば:

@SlingServlet(
    description = "processes a form",
    resourceTypes = { "yourapp/component" },
    selectors = { "form" },
    extensions = { "html" },
    methods = { "POST" })
public class FormServlet extends SlingAllMethodsServlet { ... }
于 2013-05-07T12:47:42.530 に答える
0

サーブレットが正常であることを確認するためにブラウザに入力してhttp://yourmachine.com/apps/formにアクセスできます か?

then try passing the parmeter on the URL itself http://localhost/apps/form?firstName="anish"&phoneNumber="22222222222"

すべてがうまくいけば、サーブレットはOKです

次に、ビューを把握して、Firefox/chrome 開発者ツールが URL の行き先を把握できるようにする必要があります。

それが役に立てば幸い

于 2013-05-07T06:15:56.733 に答える