textareaがあるページでjsのvalidationにより文字数を○○文字以上記載するようルールが決められています。
しかし、スペース(半角、全角含む)がカウントされてしまう為jsp側でtrimしたいです。
下記の${○.Value}をスクリプトレットで囲みtrimを当てれば出来ると考えたのですがうまくいきません。そもそもこの方法で出来ますでしょうか?
<textarea name="●●.△△.××.Value">${○.Value}</textarea>まず下記のような感じで表示をしようとしたら、textarea自体無くなってしまいました。
<%
out.write(${○.Value});
%>
すみません、ご回答宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
こんにちは。
画面ロードする順番は jsp → html → js(onload処理があれば)になると思うので、
textareaに入力した後に文字数評価しているのであれば、
jsのチェックする前で空白文字を除去する処理を入れてあげればよいと思います。
文字数チェックするのは、DBに登録するためでしょうか?
なのであれば、カラムサイズが決まっているはずなので、
空白文字をいれたままにしておかないとならないのでは??
また、
jsp
1<% 2out.write(${○.Value}); 3%>
これは、write()の引数内のものをそのまま出力するので、テキストエリアを表示したいのであれば
out.write('<textarea name="●●.△△.××.Value">${○.Value}</textarea>');
になるかと。
ただ、out.write()
はjspがロードされる際に↑のようにしているので、
中身だけをというのであれば、
<textarea name="●●.△△.××.Value"><%${○.Value}%></textarea>
と値だけをjsp記述にしてあげたらいいと思います。
独自のフレームワークということなので&{~}
がどのような扱いなのか、ちょっと分かりませんが・・・
投稿2016/01/20 03:00
編集2016/01/20 03:09総合スコア1844
0
ベストアンサー
java String.trim は半角スペースを文字列の前後から除去します。
正規表現で、String.replaceAll で抜くのが良いです。
バリデーションが掛かるタイミング前に抜ければ一番良いですが、フレームワークは何使ってるんですか。
単項目チェックはなるべくメインロジックに割り込ませたく無いですよね
投稿2016/01/20 02:23
総合スコア1693
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/20 03:43 編集
2016/01/20 07:58 編集
2016/01/20 08:09
2016/01/20 08:55
2016/01/20 09:14
2016/01/20 09:48
2016/01/20 11:10 編集
2016/01/27 06:44
2016/01/27 06:47
2016/01/27 07:28
2016/01/27 08:28
2016/02/05 02:02
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/20 07:39
2016/01/20 08:00
2016/01/20 08:03
2016/01/20 08:21 編集