私はSpring MVCを使用してアプリケーションを実行しています。アプリケーションの特定の人に銀行口座を登録しようとすると問題が発生します。サーバーがこのリクエストを実行できないような内部エラーが発生しました
Sumarizing:
@Entity
public class Pessoa {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int idPessoa;
@OneToMany(mappedBy = "pessoa", targetEntity = ContaCorretora.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<ContaCorretora> contaCorretora;
@Entity
public class ContaCorretora {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int idConta;
private TipoConta tipoConta;
private TipoRisco tipoRisco;
private String login;
private String senha;
private BigDecimal valorAtual;
@ManyToOne
@JoinColumn(name="idPessoa")
private Pessoa pessoa;
コントローラクラス:この関係で2つのクラスがあります
:この場合は、1人は多くのアカウントを持っている
@RequestMapping("/pessoa")
@Controller
public class ContaCorretoraController {
@Autowired
private ContaCorretoraDAO contaCorretoraDao;
@Autowired
private PessoaDAO pessoaDao;
@RequestMapping("/pessoacorretora/{id}")
public ModelAndView pessoaCorretora(@PathVariable("id") int id, ContaCorretora contaCorretora) {
contaCorretora = new ContaCorretora();
Map<String, Object> model = new HashMap<String, Object>();
Pessoa pessoa = pessoaDao.find(id);
model.put("contaCorretora", contaCorretora);
model.put("pessoa", pessoa);
model.put("tipoConta", TipoConta.values());
model.put("tipoRisco", TipoRisco.values());
return new ModelAndView("pessoa/contacorretora", "model", model);
}
@RequestMapping(value="/pessoacorretora/finalizar", method=RequestMethod.POST)
public ModelAndView gravar(ContaCorretora contaCorretora) {
contaCorretoraDao.gravar(contaCorretora);
return new ModelAndView("redirect:pessoa/contacorretora");
}
私は本当にしないでくださいコントローラークラスが正しいかどうかを知っていますが、おそらく問題があります。それにもかかわらず、私もJSPコードを貼り付けます:私はウェブサイトを開こうとすると(.... /ペソア/ pessoacorretora/6)
<form:form action="${s:mvcUrl('CCC#gravar').build() }" method="post" commandName="pessoa" enctype="multipart/form-data" >
<div class="form-group" >
<label>Conta</label>
<select name="tipoConta">
<c:forEach items="${model.tipoConta}" var="tipoConta">
<option value=${tipoConta}>${tipoConta}</option>
</c:forEach>
</select>
</div>
<div class="form-group" >
<label>Risco</label>
<select name="tipoRisco">
<c:forEach items="${model.tipoRisco}" var="tipoRisco">
<option value=${tipoRisco}>${tipoRisco}</option>
</c:forEach>
</select>
</div>
<div class="form-group">
<label>Login</label>
<form:input path="login" cssClass="form-control" />
</div>
<div class="form-group">
<label>Senha</label>
<form:input path="senha" cssClass="form-control" />
</div>
<div class="form-group">
<label>Valor Atual</label>
<form:input path="valorAtual" cssClass="form-control" />
</div>
<button type="submit" class="btn btn-primary">Cadastrar</button>
</form:form>
を - 6が有効なIDで、これは誤りです。
HTTPステータス500 - java.lang.IllegalStateException:BindingResultもBean名用プレーンなターゲット・オブジェクトのペソア「可能なリクエスト属性 Exception型レポートとして メッセージjava.lang.IllegalStateExceptionどちら:BindingResultものためのプレーンなターゲットオブジェクトのいずれもBean名 'pessoa'が要求属性として使用可能 説明サーバーが内部エラーを検出したため、f ROMはこの要求を満たす。
実際に私はCRUDアクションを実行するときに2つのクラスの関係をどのように扱うべきか分かりません。
これはCtrl + c Ctrl + Vの問題です。私はcommandNameを変更しました。ありがとう! –