- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我问的问题可能是一个非常简单的问题。我想在登录成功后显示用户详细信息。
我的登录 Controller
public LoginController() {
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
public String isValidUser() {
String isValid="Invalid user";
EntityManager em = null;
try {
em = getEntityManager();
Query query = em.createNamedQuery("ClientDetails.findByClientId");
query.setParameter("clientId", username);
//hashPassword(password);
ClientDetails record = (ClientDetails) query.getSingleResult();
System.out.print(record);
String passwordHash=hashPassword(password);
if (record.getPassword().equals(passwordHash)) {
System.out.print("Valid user");
isValid = "valid";
} else {
System.out.print("InValid user");
isValid="invalid";
}
} catch (Exception e) {
e.printStackTrace();
} finally {
em.close();
}
System.out.println("Login status = " + isValid);
return isValid;
}
private EntityManager getEntityManager() {
return emf.createEntityManager();
}
public String hashPassword(String password) {
String protectedPassword = null;
try {
System.out.println("password entered....." + password);
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(password.getBytes());
BigInteger hash = new BigInteger(1, md5.digest());
protectedPassword = hash.toString(16);
System.out.println("password hashed....." + protectedPassword);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return protectedPassword;
}
我有 EditController 托管 bean 类
@Resource
private UserTransaction utx = null;
@PersistenceUnit(unitName = "AdminPU")
private EntityManagerFactory emf = null;
private ClientDetails clientDetails;
private ClientWebsiteDetails clientWebsiteDetails;
@ManagedProperty(value="#{loginController}")
private LoginController login;
private Boolean booleanFacebook;
private Boolean booleanTwitter;
private Boolean booleanClientSocial;
public EditAccountController() {
}
public Boolean getBooleanClientSocial() {
return booleanClientSocial;
}
public Boolean getBooleanFacebook() {
return booleanFacebook;
}
public Boolean getBooleanTwitter() {
return booleanTwitter;
}
public void setBooleanClientSocial(Boolean booleanClientSocial) {
this.booleanClientSocial = booleanClientSocial;
}
public void setBooleanFacebook(Boolean booleanFacebook) {
this.booleanFacebook = booleanFacebook;
}
public void setBooleanTwitter(Boolean booleanTwitter) {
this.booleanTwitter = booleanTwitter;
}
public ClientDetails getClientDetails() {
if (clientDetails == null) {
clientDetails = new ClientDetails();
}
return clientDetails;
}
public ClientWebsiteDetails getClientWebsiteDetails() {
if (clientWebsiteDetails == null) {
clientWebsiteDetails = new ClientWebsiteDetails();
}
return clientWebsiteDetails;
}
public LoginController getLogin() {
return login;
}
public void setLogin(LoginController login) {
this.login = login;
}
public String getAccountDetails() {
String result = "Details not saved";
EntityManager em = null;
try {
System.out.println("Retreiving client details");
utx.begin();
em = getEntityManager();
clientDetails.setClientId(login.getUsername());
Query customerDetails = em.createQuery("ClientDetails.findByClientId");
Query websiteDetails = em.createQuery("ClientWebsiteDetails.findByClientAccountId");
List customerList = customerDetails.getResultList();
List websiteList = websiteDetails.getResultList();
Iterator clientIt = customerList.iterator();
Iterator websiteIt = websiteList.iterator();
while (clientIt.hasNext()) {
clientDetails = (ClientDetails) clientIt.next();
clientDetails.setPrimaryContactName(clientDetails.getPrimaryContactName());
clientDetails.setCompany(clientDetails.getCompany());
clientDetails.setPrimaryEmailId(clientDetails.getPrimaryEmailId());
clientDetails.setPrimaryContactNo(clientDetails.getPrimaryContactNo());
clientDetails.setPrimaryDesignation(clientDetails.getPrimaryDesignation());
}
while (websiteIt.hasNext()) {
clientWebsiteDetails = (ClientWebsiteDetails) websiteIt.next();
clientWebsiteDetails.setProductionUrl(clientWebsiteDetails.getProductionUrl());
clientWebsiteDetails.setSiteName(clientWebsiteDetails.getSiteName());
clientWebsiteDetails.setDescription(clientWebsiteDetails.getDescription());
clientWebsiteDetails.setFacebook(clientWebsiteDetails.getFacebook());
clientWebsiteDetails.setTwitter(clientWebsiteDetails.getTwitter());
clientWebsiteDetails.setClientSocial(clientWebsiteDetails.getClientSocial());
}
if ((clientWebsiteDetails.getFacebook().equals("y")) && (clientWebsiteDetails.getTwitter().equals("y"))) {
booleanFacebook = true;
booleanTwitter = true;
booleanClientSocial = false;
} else if ((clientWebsiteDetails.getFacebook().equals("n")) && (clientWebsiteDetails.getTwitter().equals("n") && (clientWebsiteDetails.getClientSocial().equals("n")))) {
booleanFacebook = false;
booleanTwitter = false;
booleanClientSocial = false;
}
System.out.print(utx.getStatus());
utx.commit();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
editaccount.xhtml
<h:form id="RegisterForm">
<h:commandLink value="Logout" action=""></h:commandLink>
<h:commandLink value="Change Password" action=""></h:commandLink>
<h:outputLabel value=""></h:outputLabel>
<h:panelGrid>
<h1>Customer Information</h1>
<h:outputLabel value="Name:" for="name" />
<h:inputText id="name" required="true" requiredMessage="Please enter your name" value="#{editAccountController.clientDetails.primaryContactName}">
<f:validateLength maximum="50"></f:validateLength>
</h:inputText>
<h:message for="name"></h:message>
<h:outputLabel value="Company:" for="company" />
<h:inputText id="company" required="true" requiredMessage="Please enter your company" value="#{editAccountController.clientDetails.company}">
<f:validateLength maximum="50"></f:validateLength>
</h:inputText>
<h:message for="company"></h:message>
<h:outputLabel value="Designation:" for="designation" />
<h:inputText id="designation" required="true" requiredMessage="Please enter your designation" value="#{editAccountController.clientDetails.primaryDesignation}">
<f:validateLength maximum="50"></f:validateLength>
</h:inputText>
<h:message for="designation"></h:message>
<h:outputLabel value="Email Id:" for="email" />
<h:inputText id="email" required="true" requiredMessage="Please enter your email, eg:yourid@domain.com" value="#{editAccountController.clientDetails.primaryEmailId}">
<f:validateLength maximum="70"></f:validateLength>
</h:inputText>
<h:message for="email"></h:message>
<h:outputLabel value="Contact No:" for="phone" />
<h:inputText id="phone" required="true" requiredMessage="Please enter your contact number" value="#{editAccountController.clientDetails.primaryContactNo}">
<f:validateLength minimum="10" maximum="25"></f:validateLength>
</h:inputText>
<h:message for="phone"></h:message>
<h2>Website Information</h2>
<h:outputLabel value="Domain:" for="production_url" />
<h:inputText id="production_url" required="true" requiredMessage="Please enter domain name,eg:www.domain.com OR yourip/app_name" value="#{editAccountController.clientWebsiteDetails.productionUrl}">
<f:validateLength maximum="50"></f:validateLength>
</h:inputText>
<h:message for="production_url"></h:message>
<h:outputLabel value="Site Name:" for="site_name" />
<h:inputText id="site_name" required="true" requiredMessage="Please enter website name" value="#{editAccountController.clientWebsiteDetails.siteName}">
<f:validateLength maximum="255"></f:validateLength>
</h:inputText>
<h:message for="site_name"></h:message>
<h:outputLabel value="Description:" for="description" />
<h:inputTextarea id="description" rows="2" cols="40" requiredMessage="Please enter website description" value="#{editAccountController.clientWebsiteDetails.description}" title="Description about the website in few lines" required="required">
<f:validateLength maximum="250"></f:validateLength>
</h:inputTextarea>
<h:message for="description"></h:message>
<h3>Social Integration</h3>
<h:outputLabel for="fb" value="Facebook:"></h:outputLabel>
<h:selectBooleanCheckbox id="fb" value="#{editAccountController.booleanFacebook}" title="Select to integrate our Facebook app in your site">
</h:selectBooleanCheckbox>
<h:outputLabel for="tweet" value="Twitter:"></h:outputLabel>
<h:selectBooleanCheckbox id="tweet" value="#{editAccountController.booleanTwitter}" title="Select to integrate our Twitter app in your site"></h:selectBooleanCheckbox>
<h:outputLabel for="your_app" value="Integrate your social app with BazaAR:"></h:outputLabel>
<h:selectBooleanCheckbox id="your_app" value="#{editAccountController.booleanClientSocial}" title="Select to integrate your social apps"></h:selectBooleanCheckbox>
<h:commandButton value="Register" type="submit" action="#{editAccountController.saveAccountDetails}"></h:commandButton>
</h:panelGrid>
</h:form>
两者都是托管 bean,并且都在 session 范围内。该应用程序是 Java EE 5。
我需要用户在我的 editController
中输入的用户名。我认为我使用了 ManageProperty 错误。你们能否指出我如何使用 ManageProperty,以便在我的 ClientDetails POJO 中将用户名设置为我的电子邮件字段时可以获得该值。
最佳答案
您需要将 EL 表达式放入 ManagedProperty 中:
@ManagedProperty(value="#{loginController}")
确保名称正确。并且 LoginController 有正确的注释。
关于java - 无法使用 @ManagedProperty 显示来自数据库的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9032054/
我的问题是如何在 python 中创建一个简单的数据库。我的例子是: User = { 'Name' : {'Firstname', 'Lastname'}, 'Address' : {'Street
我需要创建一个与远程数据库链接的应用程序! mysql 是最好的解决方案吗? Sqlite 是唯一的本地解决方案吗? 我使用下面的方法,我想知道它是否是最好的方法! NSString *evento
给定两台 MySQL 服务器,一台本地,一台远程。两者都有一个包含表 bohica 的数据库 foobar。本地服务器定义了用户 'myadmin'@'%' 和 'myadmin'@'localhos
我有以下灵活的搜索查询 Select {vt:code},{vt:productcode},{vw:code},{vw:productcode} from {abcd AS vt JOIN wxyz
好吧,我的电脑开始运行有点缓慢,所以我重置了 Windows,保留了我的文件。因为我的大脑还没有打开,所以我忘记事先备份我的 MySQL 数据库。我仍然拥有所有原始文件,因此我实际上仍然拥有数据库,但
如何将我的 Access 数据库 (.accdb) 转换为 SQLite 数据库 (.sqlite)? 请,任何帮助将不胜感激。 最佳答案 1)如果要转换 db 的结构,则应使用任何 DB 建模工具:
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
系统检查发现了一些问题: 警告:?:(mysql.W002)未为数据库连接“默认”设置 MySQL 严格模式 提示:MySQL 的严格模式通过将警告升级为错误来修复 MySQL 中的许多数据完整性问题
我想在相同的 phonegap 应用程序中使用 android 数据库。 更多说明: 我创建了 phonegap 应用程序,但 phonegap 应用程序不支持服务,所以我们已经在 java 中为 a
Time Tracker function clock() { var mytime = new Date(); var seconds
我需要在现有项目上实现一些事件的显示。我无法更改数据库结构。 在我的 Controller 中,我(从 ajax 请求)传递了一个时间戳,并且我需要显示之前的 8 个事件。因此,如果时间戳是(转换后)
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
我们将 SQL Server 从 Azure VM 迁移到 Azure SQL 数据库。 Azure VM 为 DS2_V2、2 核、7GB RAM、最大 6400 IOPS Azure SQL 数据
我正在开发一个使用 MongoDB 数据库的程序,但我想问在通过 Java 执行 SQL 时是否可以使用内部数据库进行测试,例如 H2? 最佳答案 你可以尝试使用Testcontainers Test
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎与 a specific programming problem, a sof
我正在尝试使用 MSI 身份验证(无需用户名和密码)从 Azure 机器学习服务连接 Azure SQL 数据库。 我正在尝试在 Azure 机器学习服务上建立机器学习模型,目的是我需要数据,这就是我
我在我的 MySQL 数据库中使用这个查询来查找 my_column 不为空的所有行: SELECT * FROM my_table WHERE my_column != ""; 不幸的是,许多行在
我有那个基地:http://sqlfiddle.com/#!2/e5a24/2这是 WordPress 默认模式的简写。我已经删除了该示例不需要的字段。 如您所见,我的结果是“类别 1”的两倍。我喜欢
我有一张这样的 table : mysql> select * from users; +--------+----------+------------+-----------+ | userid
我有表: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL
我是一名优秀的程序员,十分优秀!