これはおそらくばかげた質問ですが、私自身は解決策を見つけられません。 基本的に私は、Spring MVCとYahoo Finance APIを使用して簡単なJava Webアプリケーションを作成しようとしています。 私の目標は、特定の株式(例:INTC(intel corporation))のシンボルを挿入し、その「配当」、「価格」、「見積もり」などを得ることができるシンプルなフォームを作成することでした。Yahoo Finance APIでSpring MVCを使用している "デフォルトコンストラクタが見つかりませんでした"
マイaddStock.jsp:AddStock.javaの
<form:form method="POST" modelAttribute="stock">
<label>Symbol:</label>
<form:input path="symbol" />
<input type="submit" />
</form:form>
パート:
@RequestMapping(method = RequestMethod.GET, params="new")
public String createForm(Model model) {
Stock stock = new Stock();
model.addAttribute("stock", stock);
return "addStock";
}
@RequestMapping(method = RequestMethod.POST)
public String add(Stock stock, BindingResult result, Model model) throws IOException {
String name = "";
BigDecimal price = new BigDecimal("0.00");
BigDecimal change = new BigDecimal("0.00");
BigDecimal peg = new BigDecimal("0.00");
BigDecimal dividend = new BigDecimal("0.00");
BigDecimal bookValuePerShare = new BigDecimal("0.00");
if(!result.hasErrors()){
yahooFinService.addStock(stock);
if (YahooFinance.get(stock.getSymbol()).getQuote().getPrice() != null) {
symbol = stock.getSymbol();
name = YahooFinance.get(stock.getSymbol()).getName();
price = YahooFinance.get(stock.getSymbol()).getQuote().getPrice();
change = YahooFinance.get(stock.getSymbol()).getQuote().getChangeInPercent();
peg = YahooFinance.get(stock.getSymbol()).getStats().getPeg();
dividend = YahooFinance.get(stock.getSymbol()).getDividend().getAnnualYieldPercent();
bookValuePerShare = YahooFinance.get(stock.getSymbol()).getStats().getBookValuePerShare();
}
model.addAttribute("symbol", symbol);
model.addAttribute("name", name);
model.addAttribute("price", price);
model.addAttribute("change", change);
model.addAttribute("peg", peg);
model.addAttribute("dividend", dividend);
model.addAttribute("bookValuePerShare", bookValuePerShare);
YahooFinance.get(stock.getSymbol()).print();
}
return "result";
}
私の "問題" 私は空のコンストラクタ "株式" を作成するときに来ます。 ヤフーファイナンスはちょうど空のコンストラクタを提供しませんが:
public Stock(String symbol) {
this.symbol = symbol;
}
は、私が何をすべき?もちろん、新しいBeanを作成し、APIからコード全体をコピーし、空のコンストラクタを追加して(私が提供したコードを)インポートすると、すべてが正しく機能していますが、APIを使用する正しい方法とは思えません。それが "合法"であれば。 私はYahoo Finance APIからクラスを拡張する新しいJavaクラスを作成しようと考えましたが、空のコンストラクタも追加することはできません。
私の問題は「java knowledge」に関するものですが、もし誰かが私が助けてくれれば助かります。私は私の問題を適切に説明したことを願っています。乾杯。