gpt4 book ai didi

Java EE、Web 服务客户端、Java

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:18 24 4
gpt4 key购买 nike

我有一个网络服务并构建了一个客户端。我编写了一个 xhtml 页面,将姓名和电话号码发送到 Web 服务。如果我使用 Bean 通过 setter 和 getter 发送字符串,则 Web 服务将向客户端返回 null 值。如果我直接在函数中输入字符串,我会从 Web 服务返回正确的字符串。

public void submit()
{ PhoneBookProxy.addEntries(name, phoneNum);}

这不起作用。

public void submit()
{ PhoneBookProxy.addEntries("Jane Doe", "555 555-5555"); }

这确实有效。

这是作业。感谢您的所有帮助。

我正在使用带有 JDK 1.7 的 Netbeans

@ManagedBean
@NoneScoped
public class phoneBookClient {

private String firName, lasName, thphoneNum;
private PhoneBook PhoneBookProxy;

public phoneBookClient()
{
PhoneBook_Service service = new PhoneBook_Service();
PhoneBookProxy = service.getPhoneBookPort();
}

public void setFirstName(String fName)
{
firName = fName;
}

public String getFirstName()
{
return firName;
}

public void setLastName(String lName)
{
lasName = lName;
}

public String getLastName()
{
return lasName;
}

public void setPhoneNum(String phoneNum)
{
thphoneNum = phoneNum;
}

public String getPhoneNum()
{
return thphoneNum;
}

public void submit()
{
PhoneBookProxy.addEntry(getLastName(), getFirstName(), getPhoneNum());
}

public List<Object> getEntries()
{
return PhoneBookProxy.getEntries();
}

}

index.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<title>Phone Book Client</title>
</head>
<body>
<h1>Please fill in all fields and click Submit</h1>
<h:form>
<h2>Please Enter your First Name</h2>
<h:inputText id="fnameInputText" required="true"
requiredMessage="Please enter your First name"
value="#{phoneBookClient.firstName}"
validatorMessage="Name must be fewer than 30 characters">
<f:validateLength maximum="30" />
</h:inputText>
<h:message for="fnameInputText" />
<br />
<h2>Please Enter your Last Name</h2>
<h:inputText id="lnameInputText" required="true"
requiredMessage="Please enter your Last name"
value="#{phoneBookClient.lastName}"
validatorMessage="Name must be fewer than 30 characters">
<f:validateLength maximum="30" />
</h:inputText>
<h:message for="lnameInputText" />
<br />
<h2>Please enter your phone number in format: (xxx) xxx-xxxx</h2>
<h:inputText id="phoneInputText" required="true"
requiredMessage="Please enter a valid phone number"
value="#{phoneBookClient.phoneNum}"
validatorMessage="Invalid phone number format">
<f:validateRegex pattern=
"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}" />
</h:inputText>
<h:commandButton value="Submit" action="#{phoneBookClient.submit()}"/>
</h:form>
<ui:repeat var="list" value="#{phoneBookClient.entries}" >
<h:outputText value="#{list}" />
<br />
</ui:repeat>
</body>
</html>

最佳答案

这个问题与 Web 服务无关,而是关于在 jsf beans 中设置变量。

为什么在托管 Bean 定义中使用 @NoneScoped?这不适合您的情况。

如果您使用 jsf 2+,则可以使用 @ViewScoped 。您可以阅读Communication in JSF 2.0关于这个概念。

顺便说一句,这是一种糟糕的编码实践。

 public String getFirstName()
{
return firName;
}

将变量定义为 FirstName 而不是 firName,或者如果是 firName,请编写 getFirName 等方法

关于Java EE、Web 服务客户端、Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com