Dúvida h:panelgrid

Pessoal,

Alguém sabe como eu faço, utilizando o <h:panelGrid/> com 2 colunas para “mesclar” elas? Tipo, eu tenho um tela de login onde tenho um grid com 2 colunas, dai tenho outro grid logo abaixo com o botao, porém quero colocar esse botão alinhado a direita da tela, só que ela não fica, parece que o botão fica apenas na celula da grid.
meu codigo:

<%-- 
    Document   : CadInformacao
    Created on : 05/07/2009, 14:53:41
    Author     : Léo
--%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<%@taglib prefix="rich" uri="http://richfaces.org/rich" %>
<%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">


<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Sistema de Controle de Camarão</title>
            <link href="styles.css" type="text/css" rel="stylesheet" media="screen">
        </head>
        <div id="tudo">
            <body>
                <div id="login">
                    <h:form>
                        <center><h:graphicImage url="imagens/BahiaPesca.jpg" /></center>
                        <rich:panel style="text-align:center">
                            <f:facet name="header">
                                <h:outputText value="Acesse o Sistema" />
                            </f:facet>
                            <h:panelGrid columns="2" style="text-align:right">
                                <h:outputLabel value="Nome de Usuário:" styleClass="text-align:right;"/>
                                <h:inputText id="usuario" value="#{LoginMB.login.usuario}" />
                                <h:outputLabel value="Senha:" styleClass="text-align:right;"/>
                                <h:inputSecret value="#{LoginMB.login.senha}" id="senha"/>
                            </h:panelGrid>
                            <h:panelGrid columns="2" style="text-align:right" rules="all" >
                                <a4j:commandButton action="#{LoginMB.validaLogin}" value="Login" />
                            </h:panelGrid>
                            <h:messages showDetail="true" showSummary="true" errorClass="erro"/>
                        </rich:panel>
                    </h:form>
                </div>
                
            </body>
        </div>
    </html>
</f:view>

aguardo resposta

Olá malbarbosa,

Não entendi o por que vc está colocando um panel com 2 colunas, vc pode simplesmente colocar um panelGrid e deixar "apenas " uma coluna alinhado a direita cara.

OU

Deixar com uma coluna “fake”

Exemplos:
1 -

<h:panelGrid style="text-align:right" rules="all" >   
                                <a4j:commandButton action="#{LoginMB.validaLogin}" value="Login" />   
                            </h:panelGrid>

2 -

<h:panelGrid style="text-align:right" rules="all" >   
<h:column></h:column>
<h:column>
                                <a4j:commandButton action="#{LoginMB.validaLogin}" value="Login" />   </h:column>
                            </h:panelGrid>

abss qualquer coisa posta ai

bom dia Zabimaru,

tentei as duas formas que você mandou mas, nenhuma deu certo, o botão continua ficando do lado esquerdo do painel.
tem alguma outra forma?

Olá malbarbosa,

Eu acho que esqueci de uma coisa, coloca q o seu panelGrid irá pegar 100% na linha, assim:

<h:panelGrid style="width:100%;text-align:right" rules="all" >     
                                <a4j:commandButton action="#{LoginMB.validaLogin}" value="Login" />     
                            </h:panelGrid> 

abss, qqr coisa posta ai

valeu Zabimaru, funcionou!

Estou com outra dúvida,

nessa mesma tela, quando acontece um erro uma mensagem é apresentada para o usuário, só que essa mensagem quando apresentada deixa a tela toda desformatada, ex. o botao vai para mais pro lado do que o normal, sabe como resolvo isso?
Quero que quando a mensagem apareça, ela não mexa na formatação da tela.

Respondendo sua dúvida referente a como utilizar o panelGrid com 2 colunas:

<h:form> <h:panelGrid columns="2"> </h:panelGrid> </h:form>

Segue um exemplo de como posiciono os elementos em um panelGrid:

[code]<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://richfaces.org/rich” prefix=“rich”%>
<%@ taglib uri=“http://richfaces.org/a4j” prefix=“a4j”%>

Insert title here [/code]

[quote=Marcio_Nogueira]Segue um exemplo de como posiciono os elementos em um panelGrid:

[code]<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://richfaces.org/rich” prefix=“rich”%>
<%@ taglib uri=“http://richfaces.org/a4j” prefix=“a4j”%>

Insert title here [/code][/quote] Eu gostaria de centralizar o botão cmdLogin com relação aos campos superiores, tipo os campos de cima ficam em duas colunas e o cmdLogin fica em uma coluna centralizado. Tem como usando facelets somente?