-1

値をテキストとして返すように注釈を構成しました。しかし、それは私にエラーを与えています: could not find action or result.

コンソール エラー:

org.apache.struts2.dispatcher.Dispatcher - Could not find action or result
/part!finder.xhtml
No result defined for action action.PartAction and result success

アクション:

@Action(value="part!finder", results = {
    @Result(name="SUCCESS", type="stream", params = {"contentType", "text/html", "inputName", "inputStream"}),
    @Result(name="success", type="stream", params = {"contentType", "text/html", "inputName", "inputStream"})
}) 
public String finder() {
  try {
    inputStream = new ByteArrayInputStream(finder1().getBytes());
  }
  catch(Exception e) { }
    return SUCCESS;
  }
}
4

2 に答える 2

1

アノテーションのvalue属性であるアクション名を に変更します。URL でアクション名とメソッド名を区切るために使用される特殊文字です。しかし、アクションマッピングではありません。アクション名のマッピングを追加することで、.のない名前を含むアクション構成を検索しているアクション マッパーがアクションに到達できなくなります。この char はアクション名とメソッド名を分割するため、アクション構成では不適切なマッピングになります。@Actionvalue="part"!!!

ところで、URL を作成するときにDMIがオンになっている (デフォルトではオンになっている) 場合は、method属性urlまたはsubmitタグを使用すると、JSP がレンダリングされた (結果が処理された) 後にアクションにマップされる正しい URL が作成されます。ブラウザーに出力された HTML をチェックして、ページのソース HTML コードを確認できます。!また、(デフォルトではない) メソッドにマップされたアクションの前に記号が付いていることに気付くかもしれません。明示的に、またはタグを介してメソッドをアクション URL に追加し、アクションにマップされた以外のメソッドを実行できます。

于 2013-06-19T16:47:07.067 に答える
0

DMI を使用している場合@Actionは、クラスレベルで申請し、残りは DMI にお任せください。

アクション レベルで注釈を付ける場合は、一意のアクション名を宣言し、DMI を使用しないでください。

(またはその構文; 紛らわしいです。)

于 2013-06-19T13:19:06.157 に答える